Как в 1с в конфигурации
Простая и удобная среда разработки 1С:Предприятия позволяет практически любому человеку начать работать под капотом 1С - в конфигураторе. Время идет, новички становятся программистами, специалистами, а об удобных приемах работы узнают годами, по ходу своего карьерного пути. А здорово было бы, если бы все знали удобные приемы в начале своего пути? Эти несколько приемов будут полезны новичкам, так как они затрагивают ту область работы, с которой приходится сталкиваться в начале карьеры.
Вызов конструктора запроса из текста в конструкторе запроса
Думаю, не только меня раздражает, когда, случайно выделив пару символов в тексте запроса в модуле, конструктор запроса уже не открывает весь текст запроса, а ругается на синтаксис. Однако у такого приема есть и полезная сторона - уже в самом конструкторе запроса (не в модуле), можно выделить некоторую область текста и через контекстное меню вызвать еще один конструктор запроса. Это невероятно удобно, особенно при работе с временными таблицами.
Поиск задействованного кода через замер производительности
Нам достались конфигурации-мастодонты, в которых не то что часть кода уже не найти - порой неизвестно, что за форма открывалась. Раньше приходилось садиться на кнопку F11 и пересекать все общие модули БСП. С помощью этого приема нужное место можно быстро найти, включив замер производительности.
ALT + SHIFT + F
С этой комбинации клавиш необходимо начинать обучение всех программистов встроенного языка 1С:Предприятия. Комбинация выравнивает текст выделенной области модуля в соответствии с правилами 1С. Ну и совсем маленьким - выделить весь текст модуля можно комбинацией Ctrl+ A.
Получение таблицы значений с данными файла Microsoft Excel
Использование COM-объекта Excel для чтения файлов Excel - пережиток прошлого. Однако Интернет выдает результаты по работе именно с его помощью, хотя уже давно в 1С есть методы, позволяющие сделать все всего в пару строк кода! У объекта ТабличныйДокумент для этого есть метод:
А для преобразования данных табличного документа в объект ТаблицаЗначений нужно написать:
На этом пока все. Советов много, и если они найдут свою публику, я продолжу публикации. Следующую статью, например, я хочу посвятить способу обновления доработанной конфигурации поставщика способом, который не оставляет за собой мусора со старой версии конфигурации.
Специальные предложения
Самое удивительное, что даже с опытом в статье есть чё-то новое) Хотя ведь ничего сложного в ней не написано.
про 3 комбинации клавиш и один метод табличного документа.
самая главная кнопка для погромистов, почерпнувших что-либо из этой статьи - это F1 и Ctrl+F1
еще можете пробежаться по меню конфигуратора - там все комбинации перечислены. даже поиск объекта в дереве теперь в меню есть(ctrl+t)
Наберется на тысячу таких статей.
А еще есть дока и ИТС, начните с них
RTFM!
+ (3) Еще все сочетания клавиш перечислены в справке. Справка - Содержание справки - сочетания клавиш.
А можно просто начать осваивать EDT, там таких плюшек невероятное количество. Например наряду с классическим конструктором запроса есть ещё и отдельный сверхудобный редактор запроса, вот только ради него даже стоит.
(5) Сколько раз пытался начать работать в едт, столько и прекращал. Постоянно ощущение от него, что ему еще годик в разработке побыть надо. + дико раздражает полусекундная задержка подсветки одинаковых идентификаторов.
(27) недавно перевел что-то на EDT. Косяки до сих пор подбешивают, но кодить уже можно.
То обработка может просто брать и не собираться без объяснения причины, то отладка зависнет знатно.
Но плюшечки радуют:)
"Ctrl + T" самая необходимая комбинация, позволяет найти объект в дереве конфигурации в модуле которого находится курсор. Например, нашли код через замер встали на него, жмакнули и вуаля, вот выделен объект.
maxis33; unknown181538; alexey_kurdyukov; m_aster; KazanKokos; mrChOP93; zqzq; sapervodichka; echo77; + 9 – Ответить
Джуны начитаются такого, потом по ALT + SHIFT + F выравнивают какой-нибудь типовой модуль, а ты их ласково вспоминаешь при обновлениях. в общем отличный совет, только вредный
(9) это комбинация выравнивания ВЫДЕЛЕННОГО ТЕКСТА. Если у кого-то в голове нет понимания, что изменение типовых объектов влияет на обновление, то увязывать это с выравниванием текста, ну это глупо. "Ну это из серии, а потом Джуны делают Ctr+A и Del, а ты ласково вспоминаешь их при обновлениях." Что это такие за Джуны-инфузории, тут больше вопросов к тем кто их пускает в конфигуратор без базовых знаний.
Maks_Alexey13; TeMochkiN; VAAngelov; unknown181538; Sartinsky; METAL; LeXXeR; kot26rus; ivnik; m_aster; IgorS; keln; biimmap; mrChOP93; t278; Dem1urg; dvsidelnikov; Rustig; + 18 – Ответить
(10) я конечно не выравниваю все подряд, и с помощью комбинаций клавиш, но в УТ иногда форматирую циклы, потому что не удобно. а через год при обновлении думаешь "почему этот объект изменен - я же не должен был его затрагивать"? смотришь, а там только форматирование кода :( .
то есть явление не частое, не периодическое, но весьма реальное.
(10) если прочитаешь внимательно, то увидишь, что автор этого опуса именно так и советует делать, вот цитата: "Ну и совсем маленьким - выделить весь текст модуля можно комбинацией Ctrl+ A"
Так что натурально вредный совет
(17) да кому-хоть он вредный-то, "макаке с гранатой"? Ты вот написал неудачно теперь защищаешь свою позицию, что комбинации быстрых клавиш вредны. Ну остановись.
(20) из какой части моего коммента следует то, что ты мне приписываешь (комбинации быстрых клавиш вредны)? Ты просто искажаешь мои слова
Мой тезис следующий - я считаю вредным советом предложение автора "совсем маленьким" нажимать "Ctrl+ A", а затем "ALT + SHIFT + F" и выше я обосновал почему так считаю
Ты с этим не согласен? Обоснуй, будь любезен, только без "обезьян с гранатами" - я одного такого знаю и уверен, что он не один, к сожалению
Есть кто-то из минусующих, кто согласен с этим конкретно предложением автора и может обосновать свою позицию, то прошу также это сделать
Мой тезис следующий - я считаю вредным советом предложение автора "совсем маленьким" нажимать "Ctrl+ A", а затем "ALT + SHIFT + F" и выше я обосновал почему так считаю
А вот прямой текст автора, который вообще-то такого не писал и не увязывал эти комбинации:
С этой комбинации клавиш необходимо начинать обучение всех программистов встроенного языка 1С:Предприятия. Комбинация выравнивает текст выделенной области модуля в соответствии с правилами 1С. Ну и совсем маленьким - выделить весь текст модуля можно комбинацией Ctrl+ A.
Что мне тебе обосновать нужно: чтобы отдышался, успокоился и отпустил эту ситуацию?
(61) С чего ты решил, что я нервничаю? Ты опять мне что-то от себя приписываешь. Меня скорее эта ситуация забавляет - накинулись на меня скопом, заминусовали, а за что не могут толком объяснить
Ну и по теме - я из прямого текста автора делаю именно такой вывод как в моей цитате. Возможно я его слова интерпретирую неверно, но так его понять могу не только я
Но скорее автор просто написал не подумав - я такой вывод делаю. Вот, предложил ему добавить примечание.
В итоге имеем что - ты неправильно истолковал мой комментарий (твои слова ". защищаешь свою позицию, что комбинации быстрых клавиш вредны"), я пояснил, что ничего такого не имел в виду, а ты продолжаешь упорствовать.
(65) не понимаю о чем ты, но за зачет спасибо))
Ладно, вижу ты раскаиваться не намерен, а у меня запас настойчивости подошел к концу, так что больше не буду настаивать)
(64) Вы могли бы написать "к пункту . следовало бы добавить рекомендацию не делать этого бездумно в типовых модулях", и не называть совет глупым и все такое.
(10)В том то и дело - что по хорошему формат текста не должен влиять на сравнение алгоритмов! А он влияет - и меня в без этой комбинации доё. ют всегда при обновлении изменённые ТИПОВЫЕ строки - распиханные куче мест - а когда начинаешь к ним присматриваться - видишь что они их просто выровняли по-другому, или внесли иные знаки табуляции (в т.ч. между арифметическими операторами) или добавили/удалили пустую строку!
Но обновления - это вообще очень больная тема - такая важная для 1С и так хрено реализованная в их инструменте сравнения-объединения конфигураций - что когда думаю об этом - аж рыдать хочется - до чего там всё плохо - и как легко можно было внести всего лишь несколько небольших доработок в инструмент - упростив в миллион раз весь процесс! Дат хоть сделать более удобную горячую клавишу для перехода межу точками изменения внутри сравниваемой процедуры (Alt+Shif+N все плацы "сломаешь" по тыЩе раз нажимать для перехода пока идёт обновление на очередную версию). И неужели так сложно не менять при этом фокус текущего выбранного элемента - обычно это поле со списком процедур - уже после нажатия (скажем "Tab" - переходить из этого списка не на поле выбора "Порядок" - вот на фига на него вообще переходить из списка процедур), а в поле "Режим объединения" а из него уже "Tab"-ом в поле "редактирования результата" - чтобы в два-три нажатия клавши быстро перебирать и вносить изменения в код - не трогая мышку - сейчас без ней ну никак не обойтись - чтобы эффективно перемещаться между важными элементами управления. Я уж промолчу, что пробелом в списке процедур всегда флаг должен меняться - даже если формально (визуально это не видно но реально это может быть так) актина другая колонка этого списка! ну а про то, чтобы такими флажками можно было бы быстро включать/выключать каждое отдельное изменение внутри результирующего кода - я вообще молчу! А синтаксический контроль добавить при редактировании. А заменить или расширеть ещё одной парой кнопки удаления/добавления коммератрия - так чтобы обрабатывались и пара " <
А переход к строке N в исходных списках (не результирующем) слабо было сделать? В т.ч. при сравнении без учета структуры! Как и возможность поставить закладки - при сравнении многотысячных строк текстов?
Чего уж говорить про то, чтобы быстро переключаться между сравнением реализации разных конфигуораций друг с другом (не меняя текущего контекста сравнения).
Про возможность зарегистрировать в настройках текстовые префиксы (//типа "//код изменен начало" "код изменен конец") начала и конца изменённого и добавленного-костюмного блока - чтобы они соответствующим образом обрабатывались при сравнении вообще говорить бессмысленно! Как и про то, чтобы происходил более умный анализ закомментированных частей кода - шло сравнение без учета символов комментария - чтобы можно было реально узреть - что в закомментированном коде (который в сравниваемой конфигурации не закомментирован, например) есть какие-то изменения! И подсвечивать в изменённых строках (по возможности) фактические места, где внесены изменения (например задним фоном под символами)!
И что - неужели так сложно сделать поэлементное сравнение/объединение для управляемых форм - там же чёткая структурированная иерархия - это даже проще чем с текстом! То же и с табличными документами! Всё - надо остановится мне. о то правда зарыдаю на очередном обновлении!
Прошу прощения за оффтопик - наболело!
(9) я конечно же понимаю ваше замечание, отчасти согласен. но если вы хотите минимизировать подобные ситуации, то следует не запрещать джунам это делать, а смотреть в корень - писать по каждому факту разработчикам 1с - чтобы они причесывали код в каждой следующей версии. умножьте это кол-во всех 1сников, которые будут писать разрабам, а не ругать джунов - и мы быстро забудем об описанной вами проблемах.
вроде это называется "мыслить глобально, а не локально"
(11) согласен, что писать нужно когда есть о чем, но часто "нестандартное" оформление кода делается вполне справедливо, например при переносе длинной строки с параметрами метода. При этом нужен дополнительный отступ, а автоформатирование в этом случае дополнительный отступ убирает
Ну и еще пример - сейчас в ERP(КА, УТ) появилась куча строк от НСтр с выравниванием английской строки по русской
Все это реальность с которой приходится считаться
И про джунов, которые так пакостят это не фантазия - я регулярно обновляю такую ERP-шку и модуль формы Заказа клиента, обработанный этим "гениальным" способом вызывает головную боль, но с этим джуном я ничего сделать не могу, т.к. он в штате у клиента
"нестандартное" оформление кода делается вполне справедливо, например при переносе длинной строки с параметрами метода. При этом нужен дополнительный отступ, а автоформатирование в этом случае дополнительный отступ убирает
(18) Тот сверх мозг, который не осознает последствий, выделяя весь текст общего модуля - исключение. Такого нужно скорее уволить, чем простить. Даже новичок поймет, что операции глобального изменения нежелательны, особенно не в своем модуле. Скорее всего, вам досталась конфигурация от какого-то особо одаренного джуна. Я например, не встречал ниразу отформатированный модуль БСП. Переносы, пробелы - да, попадаются.
Если смотреть объективнее, то проблема, которая достается от неопытных - неправильно обновленная конфигурация. И я даже не про вставки MRG>. Я про то, когда версия конфигурации базы данных не совпадает с версией конфигурации поставщика (последняя остается старой версии), про изменения в справочной информации объектов метаданных, про лишние объекты метаданных, которые джун не может удалить
(22) я затрудняюсь оценить количество таких персонажей
Возможно их доля невелика, а может и наоборот - думаю, что никто не может знать наверняка, но в наших силах не допустить появления новых, по крайней мере попытаться
Конкретно вы можете это сделать, если добавите в упомянутый мной пункт предупреждение для тех самых "маленьких"
Что-нибудь вроде "Внимание! Никогда не делайте так в типовых модулях!", а еще можно добавить объяснение почему так делать нельзя.
е, то проблема, которая достается от неопытных - неправильно обновленная конфигурация. И я даже не про вставки MRG<<>>. Я п<>
А откуда берутся изменения в справочной информации? У меня изредка такое случается, но я не могу уловить закономерности.
также взял на заметку способ перевода ТабличногоДокумента в ТаблицуЗначений - еще не сталкивался с подобным - показалось интересным и потенциально полезным - сохранил в свои шаблоны (см. рис.)
(13)Нахватает реально четырёх. пяти. шести. вещей по отладке:
1. Возможности ставить (в т.ч. условную на влюкчение и исключение каких-либо ошибок и контроль значения переменных) точку останова в конкретной строке , реагирующую только на ошибку выпролнения этой строки, в т.ч. являющейся вызовом вложенного процесса исполнения (в т.ч. если при исполнении этой строки ошибка была внутри перехвачена, с получением описанием того где она фактически произошла)
2. Задать условие остановки без конкретной точки остановки - то есть тупо когда при выполнении любой строчки кода условие сработает - например изменится значение контролируемой переменной!
3. Листинга трассировки выполнения (замер производительности - это жалкое подобие такого инструмента - так как там всё агрегировано и нет порядка следования) - когда можно строка за строкой проследить весь последовательный путь выполнения строк кода друг за другом (при этом при наличии отслеживания переменных ещё и в каждой строке можно было бы проконтролировать их значения), ну и замер времени выполнения строки тоже можно производить (отдельно на каждую итерацию). Но в этом инструменте ещё нужно будет проработать циклические строки блоки кода - нужна возможность включать их группировку и анализировать как скопом весь цикл (рекурсию) так и отдельные витки - вот это самое сложное в этом, в остальном весьма простом в реализации, инструменте!
И тогда отладка кода станет куда более эффективной!
4. Автоподключаться отладчиком только к тем фоновым процессам - которые заданы в условие (как по пользователю/сеансу запуска - исходному или указанному в регл. задании, так и по имени-пути запускаемой процедуры) - а не сразу ко всем, что стартуют в упр. приложениях при большом количестве работающих пользователей десятками в секунду в часы пик!
В принципе это касается и других контекстов автоподключения - например web-сервисов!
. Ну и всплывающие подсказки при наборе кода в окнах инструментов отладки (в т.ч. условиях точки останова) были бы весьма кстати!
Ну и уберите ограничение на длину строки в окнах инструментов отладки (в т.ч. условиях точки останова).
Вообще - тут хорошо бы иметь возможность по отдельной кнопке(". " и поля ввода) - запускать отельное продвинутое окно ввода кода. А если там ещё и многострочный текст ввести можно было бы. и выполнить прям в текущем контексте отладки!
Ну и дайте хотя бы во время отладки выполнять (вычислять) не только функции - но и процедуры (не возвращающие значения).
Спасибо, что дали возможность менять значения переменных во время отладки. И просматривать временные таблицы запросов. Вот если бы ещё их можно было бы смотреть в отладчике не только когда у запроса назначен и не закрыт менеджер запросов или они ещё явно не удалены - а увидеть их все - что были, пока запрос выполнялся (напоминаю - я говорю про специальный запуск выполнения запроса из под отладочного инструмента) - вообще цены не было бы такому алгоритму! А если ещё и тексты запроса так в горячем режиме можно было вы в отельном инструменте редактировать и исполнять в текущем контексте исполнения и состояния транзакции - это просто было бы божественно (в клиентском контексте кустарно я ещё это мог сделать - но это не возможно в серверном контексте - основном у управляемых приложениях)
Как его открыть? Щелкнув по ярлыку 1С, ищем нужную базу и справа жмем кнопку «Конфигуратор».
Рис.1 Открытие 1С
Интерфейс конфигуратора состоит из панели инструментов, дерева объектов конфигурации и области разработки.
Рис.2 Интерфейс конфигуратора 1С
На панели находится главное меню (Файл, Правка, Конфигурация, Сервис для настройки конфигурации и т.д.), стандартные кнопки (Создать, Открыть, Сохранить, кнопки редактирования и т.д.) и кнопка работы с конфигурацией, открывающая отдельное меню.
Дерево объектов представляет собой список предопределенных объектов метаданных, которые нельзя удалить. Разрешено только добавление новых видов объектов, например, можно добавить новый справочник «Адреса доставки», но нельзя удалить весь объект «Справочники».
По дереву объектов можно вести поиск, который находится вверху дерева объектов, также работает стандартное сочетание клавиш Ctrl+F. Также можно произвести глобальный поиск по всей базе для поиска, например, упоминаний объекта в модулях всех объектов.
Рис.3 Меню работы с программой
Здесь отображены все механизмы работы с конфигурацией: можно сохранить ее в отдельный файл с расширением .cf или, наоборот, загрузить ее из файла (при этом она полностью затрет конфигурацию в базе). Чтобы сделать обновление и не потерять данные, используют функцию сравнения и объединения с версией из файла.
В базе находится три конфигурации:
- Типовая от поставщика. По умолчанию закрыта от изменений, если находится на поддержке;
- Основная, с которой работают программисты через конфигуратор. После внесения в нее изменений требуется обновление пользовательской базы;
- Базы данных, с которой работают непосредственно пользователи.
Если наша версия закрыта для редактирования ее нельзя скорректировать.
Рис.4 Запрет на редактирование конфигурации
Как произвести изменения
В меню «Конфигурация-Поддержка-Настройки поддержки» можно найти два способа:
- С сохранением поддержки;
- Без сохранения.
Рис.5 Настройка
Далее надо нажать кнопку в верхнем правом углу.
Рис.6 Включение возможности изменения
По умолчанию редактировать всю конфигурацию нельзя. Однако можно включить редактирование объектов конфигурации поставщика с сохранением поддержки. Это даст возможность вносить изменения в объекты и создавать новые, при этом возможность обновить конфигурацию, если выйдут новые официальные релизы, останется.
Рис.7 Настройка правил поддержки
Если же выбрать настройку «Объект поставщика снят с поддержки», то конфигурация поставщика удаляется и обновление становится невозможным. Данным способом часто пользуются, когда не планируют обновлять конфигурации, а будут дорабатывать собственными силами. В этом случае существенно уменьшается вес базы, и файлы конфигурации при сохранении на диске занимают намного меньше места.
После разрешения вносить изменения, разработчик редактирует или создает новые объекты, а в конце разработки, после внесения и сохранения изменений в основной конфигурации, программа попросит обновить конфигурацию базы данных. Об этом будет свидетельствовать синяя кнопка в панели инструментов.
Рис.8 Обновление конфигурации базы данных
Также конфигурацию базы данных можно обновить через меню «Конфигурация-Обновить конфигурацию базы данных». Для отмены внесенных изменений и возврата к конфигурации базы данных необходимо зайти в меню «Конфигурация-Конфигурация базы данных-Вернуться к конфигурации БД».
Рис.9 Отмена внесенных изменений в конфигурацию
Также можно нажать кнопку «Запустить в режиме отладки»: программа откроется в новом окне в пользовательском режиме и обновит конфигурацию базы данных.
Рис.10 Открытие конфигурации для отладки
Аналогичное действие будет иметь выбор меню «Отладка-Начать отладку».
Рис.11 Меню отладка
Способы разработки
Для просмотра и редактирования данных в объекте предусмотрена форма, которую можно открыть, дважды щелкнув на объект.
Рис.12 Настройка объекта
Здесь можно увидеть, как называется объект и какой у него синоним в базе данных, в каких подсистемах он используется, какие формы и макеты содержит.
Редактировать объекты можно как в модуле объекта (Рис.13), так и в модуле формы объекта (Рис.14).
Рис.13 Модуль объекта
Рис.14 Модуль формы
В данных модулях и происходит основной процесс разработки, написание кода.
Расширения
«Расширение» – интересный и перспективный инструмент, позволяющий сохранить типовые объекты в первозданном виде и избежать за счет этого трудностей при установке новых релизов. С помощью расширений правки делают в «копии» конфигурации.
Рис.15 Расширения
Открываются расширения из «Конфигурация-Расширения конфигурации», а затем как пользователь подключаются к типовой конфигурации.
Рис.16 Подключение расширения в базу
То есть, все правки в расширении, а типовые объекты не затронуты.
Создание архивов
Самое популярное использование конфигуратора – это создание архивов информационных баз из меню «Администрирование-Выгрузить информационную базу». Сохранение происходит в файл dt.
Рис.17 Работа с архивом ИБ
Важно не забывать учитывать, что при загрузке базы из файла произойдет ее полное замещение.
Исправление ошибок базы
Рис.18 Тестирование и исправление базы данных
Этот инструмент помогает проверить и восстановить логическую и ссылочную целостность информационной базы, проводить реиндексацию и реструктуризацию таблиц, а также пересчитывать итоги.
Рис.19 Форма настройки проверки и исправления
ВАЖНО! Всегда создавайте архив базы перед внесением каких-либо изменений в конфигураторе.
Среда 1С является современным и удобным инструментом для быстрой разработки различных конфигураций, предназначенных для автоматизации работы различных сфер бизнеса, и конфигурирования уже готовых прикладных программ под нужды заказчика.
Файловая база данных, в которой хранится информация обо всех вносимых изменениях в конфигурацию, называется ее хранилищем.
Как работать с хранилищем конфигурации 1С 8.3
Через хранилище может вестись коллективная работа разработчиков с конфигурацией. При этом можно посмотреть, кем и когда были внесены те или иные изменения. При подключении к хранилищу, все метаданные из него загружаются в базу.
Разработчики, создавая собственные объекты метаданных, чтобы не возникло ситуации одновременного изменения объекта в хранилище, могут воспользоваться возможностью его захвата. После окончания работы над объектом, он перемещается обратно в хранилище, и метка захвата снимается. В любой момент можно восстановить предыдущую версию конфигурации из ее хранилища. Благодаря этому осуществляется контроль доступа к объектам конфигурации при ее разработке или модификации, и тем самым обеспечивается синхронная работа разработчиков.
Рассмотрим, как происходит такая работа на примере «1С:Бухгалтерия 8.3».
Установка сервера хранилища конфигурации 1С
Если в хранилище будут работать несколько человек, удобнее располагать удаленное хранилище на сервере с доступом через интернет. При этом следует отследить, чтобы платформа была одинакова на всех компьютерах, с которых будет осуществляться работа. При установке платформы необходимо выбрать установку компоненты – «Сервер хранилища конфигураций 1С:Предприятия».
Рис.1 Сервер хранилища конфигураций 1С:Предприятия
Если платформа уже была установлена, то добавить компоненту надо в разделе «Программы и компоненты», нажав кнопку «Изменить» и выделив нужную платформу.
Рис.2 Программы и компоненты
Следуя по шагам помощника установки, идем далее.
После окончания установки нам нужно зарегистрировать сервер. Файл службы находится в каталоге «bin» установленной платформы - crserver.exe.
Рис.3 crserver.exe
Для регистрации службы воспользуемся командной строкой. Вызываем ее, введя в строке поиска кнопки «cmd».
Рис.4 Вызываем ее, введя в строке поиска кнопки «cmd»
Для регистрации службы сервера хранилища конфигурации, в командной строке пишем: "C:\Program Files (x86)\1cv8\8.3.13.1513\bin\crserver.exe" -instsrvc -d "C:\1С Хранилище".
- 8.3.13.1213 – каталог с нашей платформой и далее путь к файлу crserver.exe.
- С:\1С Хранилище – это путь к папке, которую мы создали для хранилища конфигурации (для примера).
Рис.5 Наполнение командной строки
Если все правильно написано, то в окне «Службы (локальные)» у нас появится наша служба (найти этот раздел можно поиском в Панели управления).
Рис.6 Окно «Службы (локальные)»
Нажимаем гиперссылку «Запустить службу», чтобы она заработала. Тип запуска – «Установлено автоматически».
Далее мы создадим хранилище.
Создание хранилища конфигурации 1С
Откроем нашу базу в режиме Конфигуратора и в пункте меню Хранилища выберем команду создания.
Рис.7 Создание хранилища конфигурации
Указываем путь, где будет располагаться хранилище. Это может быть локальный компьютер, компьютер в сети, сервере или веб-сервере. Пример локального пути – С:\1С Хранилище.
Рис.8 Указываем путь, где будет располагаться хранилище
Или можно указать его сетевое имя (при этом не забудьте открыть доступ к папке).
Рис.9 Можно указать его сетевое имя
Если хранилище располагается на сервере, путь указывается в формате: tcp://192.168.0.100/Хранилище конфигурации 1.
Рис.10 Если хранилище располагается на сервере, путь такой
Где 192.168.0.100 – IP компьютера (в нашем примере).
Далее мы пишем имя каталога нашего хранилища (например, «Хранилище конфигурации 1»). При создании на сервере хранилища база будет находиться: С:\1С Хранилище\Хранилище конфигурации 1.
Выбрав удобный вариант размещения хранилища, нажимаем кнопку «Далее», указываем имя пользователя и устанавливаем пароль.
Рис.11 Указываем имя пользователя и устанавливаем пароль
После нажатия кнопки «Ок» начнется процесс создания хранилища конфигурации.
Рис.12 Начнется процесс создания хранилища конфигурации
По окончании процесса, программа предложит подключиться к хранилищу (подтверждаем действие).
Рис.13 Предложение подключиться к хранилищу
Как подключиться к хранилищу конфигурации 1С 8.3
В нашем пункте меню выбираем команду подключения.
Рис.14 В нашем пункте меню выбираем команду подключения
При этом текущая конфигурация заменяется конфигурацией из хранилища. На вопрос программы о подключении отвечаем – «Да».
Рис.15 При этом текущая конфигурация заменяется конфигурацией из хранилища
При подключении к хранилищу указываем файловый каталог или адрес удаленного хранилища, вводим данные пользователя.
Рис.16 При подключении к хранилищу указываем файловый каталог или адрес удаленного хранилища, вводим данные пользователя
Рис.17 Подключение конфигурации к хранилищу успешно завершено
Отключиться от хранилища можно в том же разделе через команду «Отключиться от хранилища».
Рис.18 Отключиться от хранилища
Эта статья является логическим продолжением цикла статей «Первые шаги в разработке на 1С». В ней описывается среда разработки на платформе 1С, которая получила название “Конфигуратор”. Изучив данный материал, вы узнаете:
- Что такое дерево объектов, для чего оно нужно и как с ним работать?
- Для чего нужна палитра свойств, как её открыть, как в ней что-то отыскать?
- Когда нужно настраивать различные параметры конфигуратора и как это сделать?
- Что нужно сделать, чтобы можно было внести изменения в типовую конфигурацию?
- Как запустить конфигурацию в режиме отладки?
- Как подключиться к клиентской сессии в режиме отладки и посмотреть, что там происходит?
Рекомендуем ознакомиться с этой информацией не только начинающим программистам, но и всем тем, кто уже работал с конфигуратором и хочет ознакомиться с тонкостями его работы.
Применимость
В статье рассматривается платформа «1С:Предприятие» версии 8.3, поэтому вся информация актуальна для текущих релизов.
Основные приемы работы в конфигураторе
Дерево объектов – это первое, с чем Вы сталкиваетесь при запуске конфигуратора.
После запуска конфигурации для разработки, чтобы увидеть дерево объектов, необходимо выбрать один из двух пунктов меню Конфигурация (Открыть конфигурацию, если конфигурация еще не открыта, или Окно конфигурации, если закрыто просто само окно конфигурации).
Также можно использовать соответствующие кнопки.
Дерево объектов конфигурации отображает: какие сущности есть в конфигурации.
С помощью дерева объектов можно создавать новые элементы, редактировать, добавлять новые реквизиты и свойства.
Данное окно имеет режим закрепления. Кнопка с пиктограммой в виде скрепки в правом верхнем углу окна Конфигурация позволяет делать его прячущимся в тот момент, когда оно не активно.
Возможен поиск нужного объекта по первым буквам. Курсор автоматически позиционируется на нужном объекте.
Иногда дерево объектов называют метаданными. Во встроенном языке есть специальное свойство, которое так и называется Метаданные (т.е. данные о данных).
Одна из функций конфигуратора – это выгрузка/загрузка информационной базы. При выгрузке информационной базы получается упакованный файл с расширением dt.
Эту функцию мы уже подробно рассматривали в предыдущих статьях. Она используется в следующих случаях:
- для переноса базы данных из одного места в другое;
- как один из вариантов выполнения архивирования;
- для перевода файлового режима работы базы в клиент-серверный.
Для редактирования свойств объектов конфигурации существует три метода. Первый из них – вызов окна редактирования объекта (двойным кликом мыши).
Удобен для объектов с большим количеством свойств. Окно редактирования объекта «Документ1» представлено на рисунке.
Данный метод существует не для всех объектов. Например, исключением являются константы.
Следующий метод редактирования свойств объектов – с помощью палитры свойств, которая есть у всех объектов (и у простых, и у сложных). Соответственно, ее можно вызвать для любого объекта.
Вызов осуществляется через контекстное меню, пункт Свойства объекта (комбинация клавиш Alt+Enter).
В палитре все свойства представлены в виде списка. Можно выбирать соответствующие свойства и редактировать.
Метод удобен для объектов с небольшим количеством свойств, но может быть применен для любого объекта.
У палитры свойств есть режим закрепления (т.е. окно можно либо закрепить, либо сделать его прячущимся).
Свойства могут группироваться либо по категориям (как на рисунке), либо быть упорядоченными по алфавиту (удобно, когда точно известно название свойства, но не известна его категория). Группировки свойств можно сворачивать и разворачивать.
Возможно отображение только важных свойств. Переход в данный режим осуществляется нажатием на кнопку в виде воронки.
Если Вы не можете найти какое-то свойство, то, скорее всего, у Вас нажата данная кнопка.
Для каждого свойства существует описание (отображается внизу окна). Описание может быть скопировано в буфер и использовано для поиска по справке.
Возможно расположить категории свойств на отдельных закладках. Для включения данного режима на самой палитре свойств в контекстном меню выбирается пункт Закладками. Однако чаще удобнее работать именно списком.
С помощью палитры свойств удобно редактировать однотипные свойства для нескольких объектов, так как при переходе от одного объекта к другому палитра свойств отображается уже для другого объекта, при этом курсор остается на том же свойстве.
Еще один метод редактирования свойств объектов при помощи окна «Дополнительно». Для открытия этого окна выбирается объект конфигурации, затем в контекстном меню выбирается пункт Дополнительно.
В этом окне можно проставлять различные свойства данного объекта, которые, в основном, представлены в виде различных галочек.
Удобно использовать данное окно, если нужно провести классификацию нескольких объектов, например, по подсистемам. В этом случае вызывается данное окно и при переключении по объектам присваивается вхождение в подсистемы данного объекта.
Аналогично можно поступать с правами доступа, функциональными опциями, настройками командного интерфейса. Для того, чтобы настроить конфигуратор, нужно в меню Сервис выбрать пункт Параметры.
Откроется окно с достаточно большим количеством настроек и закладок.
На закладке Запуск 1С:Предприятия можно указать, какое приложение автоматически будет использоваться при запуске из конфигуратора (тонкий клиент, толстый клиент (управляемое приложение) и т.д.).
Если установлено значение Выбирать автоматически, то система будет ориентироваться на настройки самой конфигурации.
Внимание! Данная настройка влияет только на запуск из конфигуратора.
Здесь же можно настроить использование низкой скорости соединения (т.е. использование группировки данных, передаваемых на сервер, в пакеты).
При отладке, чтобы понять, как приложение работает на тонких каналах связи, можно настроить имитацию задержки при вызовах сервера.
На закладке Запуск 1С:Предприятие есть также подзакладка Дополнительные, где с помощью галочек можно установить ряд дополнительных параметров, которые влияют на запуск приложения из конфигуратора (будут ли отображаться показатели производительности, будет ли отображаться команда Все функции и т.д.).
На закладке Общие указывается: нужно ли только создавать объекты управляемого приложения или следует создавать объекты, которые есть и в обычном приложении.
На закладке Тексты можно настроить принципы редактирования и отображения текста (указываются шрифт, ширина табуляции и другие параметры).
На закладке Модули существует ряд подзакладок. Здесь настраивается, каким образом будет отображаться текст в модулях.
Каким образом будет выполняться Проверка, Группировка и Контекстная подсказка.
На закладке Справка указывается, каким образом будет выводиться справка.
Галочками можно указать те разделы, которые интересуют.
Чтобы получить возможность редактировать (видоизменять) типовую конфигурацию, необходимо в меню Конфигурация выбрать пункт Поддержка, далее Настройка поддержки.
Появится форма «Настройка поддержки». В данной форме следует нажать на кнопку Включить возможность изменения.
Система сделает предупреждение, что в дальнейшем невозможно будет обновлять конфигурацию полностью автоматически.
Если мы все же намерены вносить изменения, требуется нажать на кнопку Да. Появится окно «Настройка правил поддержки».
Если мы не стремимся к глобальным изменениям конфигурации, а будем пытаться обходиться лишь добавлением некоторых объектов, то изменять параметры по умолчанию в данной форме не стоит. Следует сразу нажать на кнопку ОК.
После этого нужно будет настроить правило поддержки для всей конфигурации в целом.
Для этого следует в табличной части формы «Настройка поддержки» в верхней строке (в которой указывается название конфигурации) в поле справа двойным кликом мыши вызвать форму «Настройка правил поддержки» (для данного объекта).
В появившейся форме необходимо выбрать правило Объект поставщика редактируется с сохранением поддержки и нажать на кнопку ОК.
Фому «Настройка поддержки следует закрыть». В результате произведенных действий у нас появится возможность добавления новых объектов. В окне конфигурации активизируется кнопка Добавить.
Если потребуется вносить изменения в уже существующие объекты конфигурации, то для каждого из этих объектов можно также изменить правило поддержки, как это мы сделали для всей конфигурации в целом.
Следует отметить, что программист не напрямую видоизменяет конфигурацию базы данных, а работает со своей конфигурацией, которая называется основной.
Если в основную конфигурацию были внесены какие-либо изменения, то в заголовке окна конфигурация появится маленькая звездочка (*).
Если основную конфигурацию требуется сохранить, то можно использовать пункт Сохранить из меню Файл или нажать соответствующую кнопку с пиктограммой дискеты.
В этом случае конфигурация базы данных еще не обновлена, о чем будет свидетельствовать восклицательный знак в названии окна «Конфигурация ».
Для обновления конфигурации базы данных в соответствии с произведенными программистом изменениями нужно вызвать пункт Обновить конфигурацию базы данных из меню Конфигурация, использовать клавишу F7 или соответствующую кнопку.
Чтобы запустить конфигурацию в пользовательском режиме можно выбрать пункт 1С:Предприятие из меню Сервис или использовать сочетание клавиш Ctrl+F5.
Можно запустить конфигурацию в режиме отладки (пункт Начать отладку из меню Отладка, клавиша F5 или соответствующая кнопка командной панели).
Отличие режима отладки от запуска в пользовательском режиме в том, что возможна остановка приложения в нужные моменты времени, считывание значений переменных и т.д.
При разработке в случае изменения конфигурации удобно сразу начинать отладку, система автоматически предложит сохранить базу данных, останется только дать подтверждение.
Если приложение запущено пользователем (не в режиме отладки), тем не менее при необходимости можно подключиться к процессу пользователя из конфигуратора и сделать отладку.
Сначала для заданного сеанса в режиме 1С:Предприятие через главное меню Сервис/Параметры нужно открыть окно «Параметры» и установить галочку Отладка в текущем режиме разрешена.
На будущее можно поставить галочку Устанавливать режим разрешения отладки при запуске.
После этого в конфигураторе нужно выбрать пункт Подключение из меню Отладка.
При этом появится окно «Предметы отладки» со списком процессов, которые можно отлаживать. В этом списке необходимо выбрать требуемый предмет отладки (сеанс пользователя) и осуществить к нему подключение нажатием на кнопку Подключить.
В следующих статьях цикла мы еще не раз будем обращаться к изучению возможностей конфигуратора. Так что не переживайте, если что-то в его интерфейсе вам пока не понятно.
Кстати, в следующей статье мы рассмотрим специальный инструмент конфигуратора – отладчик, без знания которого разработчику практически невозможно отладить свой программный код.
PDF-версия статьи для участников группы ВКонтакте
Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.
Статья в PDF-формате
Если Вы уже участник группы – нужно просто повторно авторизоваться в ВКонтакте, чтобы скрипт Вас узнал. В случае проблем решение стандартное: очистить кеш браузера или подписаться через другой браузер.
Комментарии / обсуждение (14):
Есть еще один полезный прием – быстро найти в дереве метаданных редактируемый объект по Ctrl+T
Тема «аккуратной» доработки типовых конфигураций является всегда актуальной.
В 2015 году фирма 1С добавила в платформу функционал расширений – отличный инструмент, который меняет старый подход к разработке.
С помощью расширений появляется возможность вносить доработки, оставляя конфигурации БЕЗ изменений (то есть не снимая «с замка»).
В качестве примера мы расширим функционал типовой “1С:Бухгалтерии 8” – добавим проверки на заполненность реквизитов документов. В результате система будет выдавать диагностику, если реквизиты заполнены “неправильными” значениями.
Буквально за 15 минут Вы научитесь приемам, которые сможете использовать для решения разных задач.
Более того, во втором видео мы покажем универсальный механизм, базирующийся на расширениях. И, разработав такой механизм один раз, его можно будет подключать к любой типовой конфигурации.
Мечты о собственной нетленке могут стать реальностью :)
Видео 1. Приемы работы с расширениями – на примере “1С:Бухгалтерии 8”
Изучив видео, Вы научитесь:
- Создавать и подключать расширения к конфигурации
- Выполнять отладку расширений
- Дорабатывать типовые формы обработок/документов с помощью расширений
- Перехватывать события форм типовой конфигурации
- Хранить данные не в таблицах ИБ (хранилище настроек)
- Использовать обработки как хранилище алгоритмов
Также мы разберем оптимизацию состава объектов расширений и ограничения расширений в текущих релизах платформы.
Видео 2. Создание универсальных механизмов с помощью расширений
В этом видео мы покажем:
- Подключение расширения в пользовательском режиме (без конфигуратора)
- Пример универсальной проверки заполнения
- Особенности реализации расширений – создание форм с произвольными отборами и хранение данных в расширениях
Чтобы освоить разработку интерфейсов и форм в 1С:Предприятие 8.3
на профессиональном уровне, рекомендуем записаться на курс:
Комментарии / обсуждение (85):
добрый день, перестали запускаться некоторые курсы. Возможно из-за того, что поменял клавиатуру на ноутбуке. Не напомните порядок восстановления? Спасибо
Для запуска курса Вам нужно получить новый регистрационный ключ.
Для этого Вам высылался код активации плеера. Код активации имеет следующий вид – ХХХХ-ХХХХ-ХХХХ-ХХХХ-ХХХХ
Найти код активации целиком Вы можете в личном кабинете на сайте на вкладке “Мои заказы”
Далее для активации плеера выполните следующие действия:
1. Запустите плеер, откройте в нем файл плейлиста (с расширением .xml)
2. В открывшемся окне не нужно ничего вводить (!), просто нажмите кнопку Активировать.
3. После этого в Вашем браузере откроется страница с формой активации, которую нужно заполнить и нажать Активировать.
Здравствуйте!
Можно ли настройки сделанные в расширении встроить в конфигурацию, естественно не потеряв данные? То есть – удалить расширение, но не потерять функционал, который был в этом расширении?
Добрый день!
Да, можно. Для этого нужно создать в основной конфигурации структуры данных, аналогичные используемым в расширении. Обработкой или вручную перенести данные из расширения в основную конфигурацию. Также нужно будет перенести весь программный код из расширения в основную конфигурацию, при необходимости адаптировать его (например, в расширении был префикс Расш_, а в основной конфигурации пр_). После протестировать, убедиться, что всё работает корректно, затем окончательно удалить расширение.
Добрый день!
Столкнулся со странным поведение расширения на платформе 8.3.9.1850 (без совместимостей).
заимствовал модуль менеджера документа
заменил (&Вместо) процедуру этого модуля, которая использует вызовы процедуры из других общих модулей.
в тонком клиенте все работает,
но при запуске толстого клиента эта процедура расширения перестает видеть процедуры из других общих модулей основной конфигурации (Переменная не определена)
заимствование всех этих модулей в расширение ничего не дает.
Это действительно такое ограничение или я что-то не так делаю?
Добрый день!
С такой проблемой не сталкивался, возможно причина в версии платформы (стоит проверит на более свежей версии).
В любом случае, новые возможности расширений вполне могут содержать ошибки, так как они практически не используются из-за режима совместимости в типовых конфигураций.
Мало кто рискует его отключать и я с этим согласен.
точно такая же проблема, на 8.3.10, УТ 11.3.4
Подскажите, как вообще можно посмотреть изменения от основной конфигурации в расширении? Есть расширение конфигурации, в нем уже куча объектов, часть из которых добавлена вручную, часть автоматически добавились. В некоторых из этих объектов произведены изменения: где-то форму поправили, где-то модуль. Остальное наследуется. Как теперь получить список именно изменений? Невозможно же разобраться. Или на каждый чих создавать отдельное расширение и там описывать что к чему? Да даже если и так, как быстро посмотреть какие скажем реквизиты или их события изменены в форме из нескольких сотен реквизитов? Может быть какая-то обработка есть?
Добрый день!
Пока никак. Механизм сравнения для расширений и основной конфигурации пока не реализован в платформе, хотя пункты в меню есть, а это говорит о том, что он когда-то появится.
Безусловно механизм расширений очень перспективный, но применять его нужно обдуманно, понимая все трудности и неудобства, которые присутствую в платформе.
Есть такая кнопка. в конфигураторе.Выглядит как воронка(отбор).Называется “Измененные и добавленные в расширении”
Добрый день!
Да, в дереве объектов метаданных для расширения есть кнопка Измененные и добавленные в расширении, которая накладывает фильтр на дерево, оставляет в нем только заимствованные объекты, модифицированные в этом расширении, и новые объекты, созданные в этом расширении. Т.е. убрирает из списка объекты, которые были только заимствованы (например, для отображения форм).
А вот сравнить объекты расширения и объекты основной конфигурации (чтобы понять, что конкретно изменилось) на сегодняшний день нельзя. Платформа пока не даёт такой возможности.
Здравствуйте!
Не подскажете, что срабатывает раньше: обработчик основной конфигурации или аналогичный обработчик в расширении? Например “ПриСозданииНаСервере” в основной конфигурации или аналогичное событие в расширении?
Добрый день!
Стандартно, сначала исполняется код обработчика из расширения, потом из основной конфигурации. Начиная с платформы 8.3.9 механизм расширений серьезно доработали и теперь при создании обработчика система спрашивает Перед, Вместо или После должен срабатывать обработчик расширения.
Добрый день!
спасибо за видео!
Возникла задача создать “Расширение” программным способом. В платформе есть метод МенеджерРасширенийКонфигурации.Создать() который возвращает РасширениеКонфигурации(Р1). Но затем это Р1 нельзя записать, т.к. свойства Р1 такие как имя, синоним и т.д. редактировать нельзя.
не сталкивались с подобной задачей?
Добрый день!
Менеджер расширений не предназначен для программной генерации расширений. Он предназначен для программной загрузки и удаления расширений аналогично тому, как это делается в пользовательском режиме.
Никто не сталкивался с ситуацией, когда регулярно права на подсистемы из расширений или на объекты из расширений слетают у пользователя?
Как отследить причину?
Добрый день! К сожалению, нет. Расширения на текущий момент используются крайне редко.
Спасибо большое, лишних знаний не бывает. Как, все-таки, приятно, когда есть люди, готовые делиться знаниями и опытом и не думающие только о наживе, в отличие от доржиков-коржиков. Удачи Вам!
Я не вижу ссылки на видео, браузер гуглхром
Добрый день!
Проверка не выявила никаких ошибок при просмотре. Попробуйте перезагрузить страницу или открыть ее в другом браузере.
Также чистка кэша должна помочь.
Скажите пожалуйста а расширение можно помещать в хранилище? Каким образом над расширением могут одновременно работать несколько человек?
Добрый день!
Сейчас нет возможности работать с расширением при помощи хранилища. Фирма “1С” рассматривает возможность реализации такого функционала.
Но для расширения можно производить операции сравнения-объединения с cfe-файлом. Тогда разработчик из нескольких файлов может собрать итоговое расширение, выгрузить его в cfe-файл, передать заказчику.
Подскажите пожалуйста почему в расширении можно набрать запрос в конструкторе запроса первый раз. Но открыть его вторично с помощью конструктора запроса нельзя, выдает ошибку, хотя сам запрос работает без ошибок. Я читал в интернете что данную ситуацию обходят тем что пишут запрос в обработчике, редактируют и дорабатывают там же. А потом готовый копируют в расширение. Это действительно недоработки функционала расширения?
Добрый день!
В расширении (например, в расширении формы документа) в конструкторе запроса будут присутствовать таблицы, доступные в самом расширении. Если в расширении пробовать открывать конструктором текст запроса, в котором участвуют таблицы, недоступные в расширении, то такой текст запроса не откроется, появится ошибка. Но при выполнении в режиме “1С:Предприятие” такой запрос отработает корректно, без ошибок. Можно все нужные таблицы добавить в расширение или редактировать текст запроса во внешней обработке или в каком-либо модуле основной конфигурации.
Т.е. ошибка у меня возникала потому что не все таблицы к которым я обращался в запросе присутствовали в расширении? Если были бы все то ошибки при повторном открытии не было бы?
Подскажите, а если не все таблицы присутствуют в расширении, то сам запрос корректно отработает но просто через конструктор не откроется? У меня проблема со стандартными реквизитами(родитель, владелец,ЭтоГруппа и т.д)
Да, именно так.
Отмечайте в расширении свойства Владельцы, Иерархический как контролируемые. Тогда конструктор будет открываться без ошибок.
Спасибо, я бы никогда не догадалась))
А подскажете, как это сделать? Как в расширении увидеть свойство Владелец? Ведь это свойство не появляется среди реквизитов добавленного объекта(Номенклатуры в моем случае). Есть ли в принципе возможность в расширении на форме подчиненного объекта(Спецификации номенклатуры в моем случае) поместить поле, ссылающееся на владельца этого объекта?
Добрый день!
Давайте рассмотрим на примере, на пустой базе.
Пусть у нас есть справочник Спецификации, подчиненный справочнику Номенклатура:
Создадим расширение конфигурации, заимствуем оба справочника в расширение.
В расширении воспользуемся конструктором запроса. Для справочника Спецификации поле Владелец недоступно:
Теперь отметим для справочника Спецификации свойство Владельцы как контролируемое:
После этого в конструкторе запроса появляется поле Владелец:
На форме объекта в расширении можно отобразить владельца:
Скажите есть ли какой-то способ следить за изменением материала для тех кто прошел/приобрел курс ранее. Может реализовать механизм рассылки?
Например, “Вы прошли курс по …, появились обновленные материалы, вы можете скачать их по ссылке:…”
тогда и не упустишь ни чего нового. А просматривать все стартовые страницы всех пройденных курсов на предмет “бонусов” слишком утомительно. (Спасибо!)
В Видео2 говорится, что сам процесс создания расширений подробно рассматривается в курсе? В каком курсе? Я прошла курс “Профессиональная разработка интерфейсов и форм”, который закончился 04.07.2016, но там не было про расширения. Или я что-то упустила?
Читайте также: