Несколько простых приемов для удобной работы в конфигураторе
Разработка - Универсальные функции
Вызов конструктора запроса из текста в конструкторе запроса

Думаю, не только меня раздражает, когда, случайно выделив пару символов в тексте запроса в модуле, конструктор запроса уже не открывает весь текст запроса, а ругается на синтаксис. Однако у такого приема есть и полезная сторона - уже в самом конструкторе запроса (не в модуле), можно выделить некоторую область текста и через контекстное меню вызвать еще один конструктор запроса. Это невероятно удобно, особенно при работе с временными таблицами.
Поиск задействованного кода через замер производительности

Нам достались конфигурации-мастодонты, в которых не то что часть кода уже не найти - порой неизвестно, что за форма открывалась. Раньше приходилось садиться на кнопку F11 и пересекать все общие модули БСП. С помощью этого приема нужное место можно быстро найти, включив замер производительности.
ALT + SHIFT + F

С этой комбинации клавиш необходимо начинать обучение всех программистов встроенного языка 1С:Предприятия. Комбинация выравнивает текст выделенной области модуля в соответствии с правилами 1С. Ну и совсем маленьким - выделить весь текст модуля можно комбинацией Ctrl+ A.
Получение таблицы значений с данными файла Microsoft Excel

Использование COM-объекта Excel для чтения файлов Excel - пережиток прошлого. Однако Интернет выдает результаты по работе именно с его помощью, хотя уже давно в 1С есть методы, позволяющие сделать все всего в пару строк кода! У объекта ТабличныйДокумент для этого есть метод:
ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение)
А для преобразования данных табличного документа в объект ТаблицаЗначений нужно написать:
Построитель = Новый ПостроительОтчета;
Лист2 = ТабДок.Области["Лист2"];
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Лист2);
Построитель.Выполнить();
ТаблицаЗначений = Построитель.Результат.Выгрузить();
На этом пока все. Советов много, и если они найдут свою публику, я продолжу публикации. Следующую статью, например, я хочу посвятить способу обновления доработанной конфигурации поставщика способом, который не оставляет за собой мусора со старой версии конфигурации.
Вступайте в нашу телеграмм-группу Инфостарт
разработка конфигуратор прием инструментарий программирование
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
См. также
Универсальные функции 1С 8.3 1С:Документооборот Россия Платные (руб)
ДО+ — расширение конфигурации, в котором собран постоянно пополняемый набор из 33 востребованных доработок для 1С:Документооборот КОРП 3.0: согласование задач прямо из мессенджеров MAX и Telegram, отзыв согласования и исполнения, гибкие повторные круги, эскалация с точностью до минут, контроль исполнительской дисциплины, выгрузка вложений в ZIP и склейка PDF, реестр документов в Excel, проверка дублей контрагентов и регистрационных номеров. Каждая возможность активируется отдельным флажком в режиме предприятия — включается только то, что нужно конкретной организации. Список функций расширяется с каждым релизом — текущая версия 2.1.0. Режим AddOn: типовая конфигурация не модифицируется, обновления ДО ставятся штатно, дополнительные лицензии и внешние компоненты не требуются. Внедрение силами администратора — около часа.
30000 руб.
09.07.2026 1422 1 0
Механизмы платформы 1С Разработчик Бесплатно (free)
Разберем 15 мифов о работе платформы «1С:Предприятие 8» – как распространенных, так и малоизвестных. Начнем с классики: «Код, написанный в одну строку, работает быстрее, чем многострочный». Так ли это на самом деле?
16.07.2025 45623 TitanLuchs 109
Механизмы платформы 1С WEB-интеграция Разработчик 1С:Предприятие 8 Бесплатно (free)
В платформе 8.3.27 появилась возможность использовать WebSocket-клиент. Давайте посмотрим, как это все устроено и чем оно нам полезно.
14.01.2025 46753 dsdred 110
Механизмы платформы 1С Разработчик Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)
Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает.
23.06.2024 40420 bayselonarrend 24
Универсальные функции Разработчик 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)
Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.
21.05.2024 68806 dimanich70 87
Перенос данных 1C Механизмы платформы 1С Системный администратор Разработчик Стажер 1С:Предприятие 8 Бесплатно (free)
Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?
11.12.2023 29677 dsdred 63
Механизмы платформы 1С Разработчик Бесплатно (free)
Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?».
06.10.2023 36377 SeiOkami 48
БСП (Библиотека стандартных подсистем) Сканер штрих-кода Универсальные функции Этикетки, ценники Разработчик Аналитик 1C:Бухгалтерия Бесплатно (free)
Разберем на примерах использование компоненты из БСП для генерации штрихкода и матричных кодов.
15.09.2023 55236 YA_418728146 17
самая главная кнопка для погромистов, почерпнувших что-либо из этой статьи - это F1 и Ctrl+F1
еще можете пробежаться по меню конфигуратора - там все комбинации перечислены... даже поиск объекта в дереве теперь в меню есть(ctrl+t)
Наберется на тысячу таких статей.
А еще есть дока и ИТС, начните с них
RTFM!
Так что тема актуальна...
Еще подобные темы полезны будущими комментариями, например, такими:
и море других
то есть явление не частое, не периодическое, но весьма реальное...
Так что натурально вредный совет
Мой тезис следующий - я считаю вредным советом предложение автора "совсем маленьким" нажимать "Ctrl+ A", а затем "ALT + SHIFT + F" и выше я обосновал почему так считаю
Ты с этим не согласен? Обоснуй, будь любезен, только без "обезьян с гранатами" - я одного такого знаю и уверен, что он не один, к сожалению
Есть кто-то из минусующих, кто согласен с этим конкретно предложением автора и может обосновать свою позицию, то прошу также это сделать
Твой текст:
А вот прямой текст автора, который вообще-то такого не писал и не увязывал эти комбинации:
Что мне тебе обосновать нужно: чтобы отдышался, успокоился и отпустил эту ситуацию?
Ну и по теме - я из прямого текста автора делаю именно такой вывод как в моей цитате. Возможно я его слова интерпретирую неверно, но так его понять могу не только я
Но скорее автор просто написал не подумав - я такой вывод делаю. Вот, предложил ему добавить примечание...
В итоге имеем что - ты неправильно истолковал мой комментарий (твои слова "...защищаешь свою позицию, что комбинации быстрых клавиш вредны"), я пояснил, что ничего такого не имел в виду, а ты продолжаешь упорствовать...
Но обновления - это вообще очень больная тема - такая важная для 1С и так хрено реализованная в их инструменте сравнения-объединения конфигураций - что когда думаю об этом - аж рыдать хочется - до чего там всё плохо - и как легко можно было внести всего лишь несколько небольших доработок в инструмент - упростив в миллион раз весь процесс! Дат хоть сделать более удобную горячую клавишу для перехода межу точками изменения внутри сравниваемой процедуры (Alt+Shif+N все плацы "сломаешь" по тыЩе раз нажимать для перехода пока идёт обновление на очередную версию). И неужели так сложно не менять при этом фокус текущего выбранного элемента - обычно это поле со списком процедур - уже после нажатия (скажем "Tab" - переходить из этого списка не на поле выбора "Порядок" - вот на фига на него вообще переходить из списка процедур), а в поле "Режим объединения" а из него уже "Tab"-ом в поле "редактирования результата" - чтобы в два-три нажатия клавши быстро перебирать и вносить изменения в код - не трогая мышку - сейчас без ней ну никак не обойтись - чтобы эффективно перемещаться между важными элементами управления. Я уж промолчу, что пробелом в списке процедур всегда флаг должен меняться - даже если формально (визуально это не видно но реально это может быть так) актина другая колонка этого списка! ну а про то, чтобы такими флажками можно было бы быстро включать/выключать каждое отдельное изменение внутри результирующего кода - я вообще молчу! А синтаксический контроль добавить при редактировании.... А заменить или расширеть ещё одной парой кнопки удаления/добавления коммератрия - так чтобы обрабатывались и пара "{{MRG[ <-> ]" "//}}MRG[ <-> ]" - чтобы не приходилось каждый раз руками это всё удалять, а можно было раз/за комментировать одним нажатием кнопки (с горячей клавишей разумеется)
А переход к строке N в исходных списках (не результирующем) слабо было сделать? В т.ч. при сравнении без учета структуры! Как и возможность поставить закладки - при сравнении многотысячных строк текстов?
Чего уж говорить про то, чтобы быстро переключаться между сравнением реализации разных конфигуораций друг с другом (не меняя текущего контекста сравнения)....
Про возможность зарегистрировать в настройках текстовые префиксы (//типа "//код изменен начало" "код изменен конец") начала и конца изменённого и добавленного-костюмного блока - чтобы они соответствующим образом обрабатывались при сравнении вообще говорить бессмысленно! Как и про то, чтобы происходил более умный анализ закомментированных частей кода - шло сравнение без учета символов комментария - чтобы можно было реально узреть - что в закомментированном коде (который в сравниваемой конфигурации не закомментирован, например) есть какие-то изменения! И подсвечивать в изменённых строках (по возможности) фактические места, где внесены изменения (например задним фоном под символами)!
И что - неужели так сложно сделать поэлементное сравнение/объединение для управляемых форм - там же чёткая структурированная иерархия - это даже проще чем с текстом! То же и с табличными документами! Всё - надо остановится мне.... о то правда зарыдаю на очередном обновлении!
Прошу прощения за оффтопик - наболело!
вроде это называется "мыслить глобально, а не локально"
Ну и еще пример - сейчас в ERP(КА, УТ) появилась куча строк от НСтр с выравниванием английской строки по русской
Все это реальность с которой приходится считаться
И про джунов, которые так пакостят это не фантазия - я регулярно обновляю такую ERP-шку и модуль формы Заказа клиента, обработанный этим "гениальным" способом вызывает головную боль, но с этим джуном я ничего сделать не могу, т.к. он в штате у клиента
разрабам платформы 1с писать надо - чтобы форматирование доработали по вашему ТЗ
Если смотреть объективнее, то проблема, которая достается от неопытных - неправильно обновленная конфигурация. И я даже не про вставки MRG{{}}. Я про то, когда версия конфигурации базы данных не совпадает с версией конфигурации поставщика (последняя остается старой версии), про изменения в справочной информации объектов метаданных, про лишние объекты метаданных, которые джун не может удалить
Возможно их доля невелика, а может и наоборот - думаю, что никто не может знать наверняка, но в наших силах не допустить появления новых, по крайней мере попытаться
Конкретно вы можете это сделать, если добавите в упомянутый мной пункт предупреждение для тех самых "маленьких"
Что-нибудь вроде "Внимание! Никогда не делайте так в типовых модулях!", а еще можно добавить объяснение почему так делать нельзя...
А откуда берутся изменения в справочной информации? У меня изредка такое случается, но я не могу уловить закономерности.
ваш подход с оценкой производительности очень интересен - еще нигде не встречал...
также взял на заметку способ перевода ТабличногоДокумента в ТаблицуЗначений - еще не сталкивался с подобным - показалось интересным и потенциально полезным - сохранил в свои шаблоны (см. рис.)
1. Возможности ставить (в т.ч. условную на влюкчение и исключение каких-либо ошибок и контроль значения переменных) точку останова в конкретной строке , реагирующую только на ошибку выпролнения этой строки, в т.ч. являющейся вызовом вложенного процесса исполнения (в т.ч. если при исполнении этой строки ошибка была внутри перехвачена, с получением описанием того где она фактически произошла)
2. Задать условие остановки без конкретной точки остановки - то есть тупо когда при выполнении любой строчки кода условие сработает - например изменится значение контролируемой переменной!
3. Листинга трассировки выполнения (замер производительности - это жалкое подобие такого инструмента - так как там всё агрегировано и нет порядка следования) - когда можно строка за строкой проследить весь последовательный путь выполнения строк кода друг за другом (при этом при наличии отслеживания переменных ещё и в каждой строке можно было бы проконтролировать их значения), ну и замер времени выполнения строки тоже можно производить (отдельно на каждую итерацию). Но в этом инструменте ещё нужно будет проработать циклические
И тогда отладка кода станет куда более эффективной!
4. Автоподключаться отладчиком только к тем фоновым процессам - которые заданы в условие (как по пользователю/сеансу запуска - исходному или указанному в регл. задании, так и по имени-пути запускаемой процедуры) - а не сразу ко всем, что стартуют в упр. приложениях при большом количестве работающих пользователей десятками в секунду в часы пик!
В принципе это касается и других контекстов автоподключения - например web-сервисов!
...Ну и всплывающие подсказки при наборе кода в окнах инструментов отладки (в т.ч. условиях точки останова) были бы весьма кстати!
Ну и уберите ограничение на длину строки в окнах инструментов отладки (в т.ч. условиях точки останова).
Вообще - тут хорошо бы иметь возможность по отдельной кнопке("..." и поля ввода) - запускать отельное продвинутое окно ввода кода. А если там ещё и многострочный текст ввести можно было бы.... и выполнить прям в текущем контексте отладки!
Ну и дайте хотя бы во время отладки выполнять (вычислять) не только функции - но и процедуры (не возвращающие значения).
Спасибо, что дали возможность менять значения переменных во время отладки. И просматривать временные таблицы запросов. Вот если бы ещё их можно было бы смотреть в отладчике не только когда у запроса назначен и не закрыт менеджер запросов или они ещё явно не удалены - а увидеть их все - что были, пока запрос выполнялся (напоминаю - я говорю про специальный запуск выполнения запроса из под отладочного инструмента) - вообще цены не было бы такому алгоритму! А если ещё и тексты запроса так в горячем режиме можно было вы в отельном инструменте редактировать и исполнять в текущем контексте исполнения и состояния транзакции - это просто было бы божественно (в клиентском контексте кустарно я ещё это мог сделать - но это не возможно в серверном контексте - основном у управляемых приложениях)
Эх... прощу прощение за нытьё и оффтопик! НАБОЛЕЛО!
СтрЗаменить(Запрос.Текст, "Результат.Сумма КАК ОбщаяСумма", "ЕстьNull(Результат.Сумма, 0) КАК ОбщаяСумма")
Неудобно в конфигураторе тогда, когда открыто их несколько, и по ошибке можно перепутать их, сделать изменения или производить поиск не в той базе, которой нужно. В такие моменты хочется, чтобы наименование базы в конфигураторе было выделено большим жирным шрифтом в шапке.
Отображение избранных объектов метаданных - да, удобно. При работе с хранилищем так и происходит, если нажать кнопку. Без хранилища такой удобной функции нету.
ToDo List - удобно, но спорно. Я, например, этот список задач пишу в notepad++. При работе с проектами задействованы несколько копий баз с одной конфигурацией
Наверное уже "100 лета", как есть в любой IDE кроме 1С Конфигуратора (даже в EDT он есть - но это наследие от Eclipse).
И многие продвинутые разработчики этим инструментом активно пользуются. Чистым 1С это не понять - привычки нет. Блокнот тут не спасает - ведь тут вся фишка в том, что заметики находятся прямо в коде (и не потеряются) - и легко между ними перемещаться. Легко контролировать что-ещё не сделано, в т.ч. при отладке или анализе чужого кода. Да и просто - делая код-ревью всегда видны эти заметки прямо в коде - что сподвигает к реакции на их наличие - в т.ч. незамедлительное устранение (как доработка так и и удаление того - что решили в итоге не делать).
Особенно это эффективно при хорошо поставленном командном процессе разработки - но это уже нечто большее - чем просто ToDO List - до этого уровня системам IDE 1C как до луны - а жаль.... я считаю им очень не хватает встроенной прям в IDE интеграции с системой взаимодействия (желательно не только проприетарной от 1С, так как в других IDE обычно есть открытый протокол интеграции с разными уже популярными подобными системами), а так же нужна интеграция с системами ITIL (и им подобным, скорее даже с ITSM ну или хотя бы с системами документооборота) - для более эффективного (всё-таки XXI век на дворе - блокноты уже отстой) командного взаимодействия, в т.ч. по задачам, проектам, метаданным, планам разработок, и учету рабочего процесса. Чтобы можно было в таких системах делать ссылки прямо на элементы метаданных (в т.ч. на пока ещё не существующие), и элементы внутри текста кода, макетов, формы и т.п. Производить передачу кусков кода, тех же ToDOList и результатов код ревью. Писать комментарии к коду (не храня этот комментарий внутри конфигураций, но быстро получая к этим комментариям доступ прямо из IDE).
Хотя бы на уровне КОРП лицензии такой функционал уже давно необходим! Но он навряд ли когда-либо появится в 1С Предприятие 8 - и это удручает :-(
В итоге так: увидел что реквизит ссылочного типа и быстро перепрыгнул на этот обьект
Я конечно имел ввиду перескакивать к объекту из окна "Редактирование типа данных", когда просматриваешь выбранные для реквизита типы данных и тебя интересует как выбранные так и ещё и не выбранные типа данных. Например, видишь по названию похоже объект который мог быть типом для реквизита, но не знаешь его что-там (перечисление) и хочется сразу к нему прыгнуть. Сейчас такое проще делать Копировать (ctrl-C) /закрыл окно/Вставить(Ctrl-V) 2 в поиск в дереве конфигурации
Сам давно хотел написать нечто-подобное. Но потом понял - что как статья на Инфостарт - это дело совершенно пустое!
Тут, скорее нужно целый отдельный интернет-ресурс (раз такого нет ни у Инфостарта ни у компании 1С - что очень печально и показательно) - где структурировано и классифицировано выкладывать все замечания к работе систем и конфигураций 1С: Предприятие 8, и все пожелания. Чтобы потом можно было к ним привешивать комментарии, и проводить голосование - чтобы наглядно было видно что реально волнует сообщество, а что нет.
Там же можно организовать и открытий багтрэкер - то что есть у 1С - лично мне совершенно не нравится - не информативно - больше похоже на какую-то отписку (ну внутри то у них наверняка что-то нормальное используется - но оно не публичное).
Новые анонсируемые фишки там тоже можно размещать - и тоже по ним устраивать комментирование и голосование!
Но.... компания 1С 100% на это всё болт забьёт - мнение миноритарных представителей сообщества им до фонаря (хоть иногда они и делают вид, что это не так), ну а крупные заказчики навряд ли будут заинтересованы таким ресурсом - у них уже давно есть свои приватные каналы давления на компанию 1С (уж не знаю насколько эффективные, но явно поболе - чем вот такие статьи как эта и такие комментарии к ней на Инфостарт).
Ну и такой интернет-ресурс будет нуждаться в раскрутке - а это деньги - много денег - и вряд ли они вообще когда-либо окупятся!
Так что критика 1С - это дело - труба!
f2 и alt+f2 как то не очень зашло. По одному модулю побегать - да удобно, но списочек точек останова мне больше по душе.
ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение)Лучше юзать COM(OLE).
Дьявол, как водится, в деталях)
Например, чтение через "Табличный документ":
а) выводит лишние нули в конце дробной части "0,000020" вместо "0,00002"
б) выводит лишние нули в начале числа "058198119" вместо "58198119"
в) выводит погрешность дробных чисел "835.2000000000001" вместо "835.2"
г) некорректно выводит лишние пустые строки когда таблица пуста/выведена с использованием rich text
д) выводит лишнюю табуляцию "уп.10 " вместо "уп.10"
и т.д. (проверено на 100+ прайсах от разных клиентов)
А всё из-за того, что табдок читает представление ячейки, а не её содержимое. Не спасает ситуацию и реализованный в 8.3.10 параметр "СпособЧтенияЗначенийТабличногоДокумента.Значение" - так как поставщику довольно сложно объяснить почему его "красиво" оформленный rich text'ом прайс в значениях ячеек содержит х****.
Мы устали возиться с com-объектами и перешли к использованию компоненты для работы с ooxml на .net (она есть и на java) или парсингом zip-файла. Оба варианта имеют право быть.
взлет платформы и конфигураций построенных на УФ - также был затянут на многие годы - первые 5 лет УТ 11, УНФ были с большим набором ошибок, платформа работала не стабильно...
в части остального мира разработки - ни у кого нет полноценных конфигураций такого уровня и в таком кол-ве, как у 1С... поэтому остальной мир может пилить свои среды разработки до бесконечности, а нам надо заниматься конфигурациями....
я, к сожалению, не могу принять полностью вашу позицию, но что-то общего в нашем недовольстве есть...
1. F12 - поиск определения текущей функции или переменной - для переменной найдёт ближайшую точку присвоения значения если она явно не определена и не является параметров функции
2. Alt+F12 - поиск по всей конфигурации места вызова текущей функции (чтобы сработало - нужно стоять курсором строго на заголовке имени функции в её определении) - в текстовых строках (для команды "Выполнить") конечно не ищет!
3. Ctrl+T - найти в дереве метаданных текущий открытый модуль или форму (в т.ч. форму метаданных) и позиционироваться на него (в отсутствие закладок в метаданных помогает очень удобно быстро между ними переключаться) - но не работает - если метаданные скрыто (поиск или отбор по подсистеме) в дереве метаданных - что порой очень расстраивает!
4. Изучите меню Окна при работе с текстами - там вверху есть несколько очень интересных команд по дублированию окон - они в умелых руках очень полезны (горячих клавиш не имеют).
5. Ещё хочу заметить про удобную возможность делать в конфигураторе любое окно свободным или прикрепляемым (через контекстное подменю по правой кнопке мыши) - удобно при работе за ультраширокими мониторами и несколькими мониторами. В т.ч. можно создавать наборы окон со своими закладками - попробуйте поиграться с синтакси-помошником, деревом метаданных (не обязательно основным, можно с деревьями расширений или открытыми из файлов) и с объект-инспектором (свойства) - и мы может найдёте для себя более удобное расположение комбинации этих окон, чем типовое. Кстати такой трюк можно делать и с окнами кода (текста) или макетами - но тут есть некоторые ограничения по прикреплению к той или иной стороне - но обычно прикрепление к одному из вышеописанных окон решает проблему - тем самым можно легко закрепить часть кода или несколько частей в отдельных разных закладках - и всегда видеть её работая с другой частью кода. К сожалению в режиме 1С Предприятие такой трюк в Обычном приложении не работает - в управляемом есть такая возможность - но со своими ограничениями!
Жаль нельзя создавать несколько настроек профилей расположения окно - и быстро переключаться между ними (как умеет делать любая иная боле-менее продвинутая IDE)
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 1549066
Создание 12.11.21 13:30
Обновление 12.11.21 13:30
Просмотры 29792
Загрузки 0
Рейтинг
162
Комментарии 97
Код открыт Да
Рубрики Универсальные функции Механизмы платформы 1С
Кому Разработчик
Тип файла Нет файла
Платформа 1С:Предприятие 8
Конфигурация Универсальные
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)