🔥 Горящие вакансии
Все статьи

20 лайфхаков 1С для разработчиков

Собрали 20 лайфхаков, которые используют наши программисты при работе с 1С. Формы, контрагенты, СКД, процедуры, глюки платформы и многое другое в одном месте. Пользуйтесь и делитесь с друзьями.

Содержание скрыть

Обычные формы. Как организовать подбор в табличную часть

Рассмотрим решение задачи на примере формы документа, у которого имеется табличная часть «Заказ-наряды».

1. На форме документа на командную панель табличной части «Заказ-наряды» добавляем кнопку подбора и прописываем её код:

Процедура ПодборНарядов(Кнопка)
    Форма = Документы.ЗаказНаряд.ПолучитьФормуВыбора(, ЭлементыФормы.ЗаказНаряды, ЭтотОбъект);
    Форма.ЗакрыватьПриВыборе = Ложь;
    Форма.Открыть();
КонецПроцедуры

2. Далее у табличной части находим событие «ОбработкаВыбора» и прописываем для него код:

Процедура ЗаказНарядыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    
    Если ТипЗнч(ВыбранноеЗначение) = Тип("ДокументСсылка.ЗаказНаряд") Тогда
        Если ЗаказНаряды.НайтиСтроки(Новый Структура("ЗаказНаряд", ВыбранноеЗначение)).Количество() = 0 Тогда
            НоваяСтрока = ЗаказНаряды.Добавить();
            НоваяСтрока.ЗаказНаряд = ВыбранноеЗначение;

            // также здесь можно выполнить дополнительные обработки
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Есть список контрагентов, нужно быстро узнать их коды в базе

Делаем такой запрос где в кавычках прописываем список наименований контрагентов (должен 100% совпадать с названиями контрагентов в базе):

20 лайфхаков 1С для разработчиков

Таким образом мы избавляемся от необходимости вручную прописывать список контрагентов в запросе, работа происходит в разы быстрее за счёт использования списка через запятую.

СКД. Параметр с указанным именем не найден

В СКД если при открытии отчета выходит ошибка «Параметр с указанным именем не найден», то это может быть глюк платформы. Чтобы его исправить, заходим в схему компоновки данных и на вкладке «Параметры» изменяем для нужного параметра поле «Значение» — очищаем его если заполнено или заполняем если оно пустое. Сохраняем отчет, запускаем его, затем возвращаем всё восвояси и заново запускаем отчёт.

20 лайфхаков 1С для разработчиков

СКД. Как вывести документ в виде: Г00001 от 01.01.2019, чтобы по двойному клику его можно было открыть

По умолчанию документы в СКД выводятся в следующем виде:

20 лайфхаков 1С для разработчиков

Мы сделаем его красивым и сокращенным:

20 лайфхаков 1С для разработчиков

Для этого нужно прописать следующее выражение в колонку «Выражение представления» по этому полю:

20 лайфхаков 1С для разработчиков

Быстрый поиск по фразе в коде (CTRL+F3)

Если в коде нужно быстро найти какую-то фразу, можно выделить её и нажать CTRL + F3, тогда она автоматически подставится в поле поиска сверху и нажатием F3 можно будет переходить по всем местам этой фразы в коде.

20 лайфхаков 1С для разработчиков

Таким образом мы экономим время на копирование фразы (кстати, фразу можно быстро выделить, зажав CTRL и щелкнув внутри фразы), а также на перемещение мышью и вставку этого текста в поле поиска.

Как быстро поменять название процедуры, назначенной на событие

Бывает так что имя процедуры слишком длинное или оно устарело. А чтобы его поменять – нужно изменить и название процедуры в коде и исправить её название в обработчике события.

Для быстрого изменения же следует делать это в поле с именем процедуры в событии. При изменении 1С предложит поменять имя процедуры:

20 лайфхаков 1С для разработчиков

И при нажатии «Да» имя процедуры изменится и в коде. Таким образом можно быстро выполнять рефакторинг.

Как разрешить выбирать в поле на форме номенклатуру только типа «Комплект» (или другое условие)

Рассмотрим на примере документа «Изменение состава комплекта» из сертификационного экзамена 1С: Специалист по платформе. У него есть реквизит «Комплект» с типом «Номенклатура». Нужно сделать так чтобы в этом поле пользователь мог выбирать номенклатуру только с видом номенклатуры «Комплект».

Для этого нужно у этого реквизита в свойствах указать Параметры выбора Отбор.ВидНоменклатуры(Комплект):

20 лайфхаков 1С для разработчиков

Таким образом больше не нужно ничего писать в коде для гарантии того что пользователь сможет выбирать только комплекты.

Отладка COM соединения

Отлаживать COM соединение можно ставя в ключевые места в коде во внешней базе примерно такие блоки:

ТекстовыйФайл = Новый ТекстовыйДокумент;
ТекстовыйФайл.ДобавитьСтроку("Тип параметра распознан верно, это наряд на отгрузку");
ТекстовыйФайл.Записать("\UserPCshared_folderЗадачиLog_1.txt");

И затем после вызова этой процедуры через COM соединение проверять наличие файла в каталоге. Если его нет, значит до этой точки код даже не дошёл. В текстовый файл при этом можно добавлять любые фразы и по несколько строк. Также можно сделать единый log файл в который прописывать весь алгоритм работы COM соединения в ключевых его местах.

Отладка под определенным пользователем

Чтобы запускать 1С в режиме отладки из конфигуратора от имени другого пользователя, можно задать нужного пользователя в параметрах конфигуратора (меню Сервис – Параметры) на вкладке «Запуск 1С: Предприятия»:

20 лайфхаков 1С для разработчиков

Как вернуть реквизит в тоже состояние, в котором оно было до его изменения?

Очень просто, получаем его запросом. Для этого удобно воспользоваться типовой функцией БСП «ЗначениеРеквизитаОбъекта»:

20 лайфхаков 1С для разработчиков

В данном примере использован другой модуль (в отличии от типовой БСП) в который просто была помещена типовая функция БСП, которая строит запрос.

Как ускорить запрос заменив оператор ИЛИ объединением

Запрос будет работать значительно быстрее, если в выборке из большой таблицы не использовать оператор ИЛИ в условие ГДЕ или в условии соединения, а заменить это на объединение результатов двух запросов:

20 лайфхаков 1С для разработчиков

Как можно писать структуру короче

Закоментированный вариант длиннее:

20 лайфхаков 1С для разработчиков

Как быстро посмотреть параметры вызываемой процедуры

Находясь курсором на параметре процедуры хорошо было бы понять, какой параметр в процедуре заполняет данная переменная:

20 лайфхаков 1С для разработчиков

Сделать это просто. Нажимаем в этот момент CTRL + Shift + Пробел и вот что видим:

20 лайфхаков 1С для разработчиков

Не удивляйтесь что цвет фона у всплывшего окна розовый, это настраивается в конфигураторе.

Подсветка выделенных переменных в коде

Можно сделать так чтобы, поставив курсор на какую-нибудь переменную видеть все места её использования в коде:

20 лайфхаков 1С для разработчиков

Для этого в конфигураторе через меню сервис-параметры во вкладке «Модули» настраиваем цвет для текущего идентификатора:

20 лайфхаков 1С для разработчиков

Как находить быстро нужные объекты в дереве метаданных

В дереве метаданных сверху есть поле для ввода. В него можно вводить искомые объекты. Главный лайфхак в том, что слова можно вводить частями и с пробелами:

20 лайфхаков 1С для разработчиков

Более короткий вариант условия ИЛИ

Можно писать так:

20 лайфхаков 1С для разработчиков

А можно писать так (это идентично, но более читаемо):

20 лайфхаков 1С для разработчиков

Быстрый просмотр временных таблиц запроса

На управляемых формах есть консоль запросов, которая позволяет смотреть данные всех временных таблиц:

20 лайфхаков 1С для разработчиков

Её без проблем можно найти в свободном доступе в интернете. И не нужно тратить время на комментирование и выполнение запроса по частям.

Как найти элемент на обычной форме если на ней куча элементов?

Заходим в меню «Форма» — «Список элементов управления формы…» в результате появится окно со списком всех элементов формы. Здесь можно выполнить поиск по CTRL+F (и продолжить поиск нажимая F3), а щелкнув на элемент он отобразится на самой форме.

20 лайфхаков 1С для разработчиков

Создаем шаблоны для быстрого ввода часто-используемого кода:

Нажав CTRL+Shift+T можно открыть окно шаблонов текста. На просторах интернета есть замечательный набор шаблонов от Павла Чистова, я использую его уже более 5 лет и всем рекомендую его поставить, а от стандартных шаблонов отказаться.

Фишка в том, что файл шаблонов можно изменять. Рассмотрим добавление шаблона:

20 лайфхаков 1С для разработчиков

С помощью текст <?> задается куда будет установлен курсор после замены.

Таким образом фраза ПарОтб автоматом будет заменяться на этот кусок кода. Кстати, в справке хорошо написано какие возможности по созданию шаблонов предоставляются разработчику.

А чтобы шаблоны работали (автоматически заменяя введенный текст ПарОтб на всю конструкцию, описанную в шаблоне), необходимо в настройках конфигуратора включить автозамену (сервис – параметры – модули – автозамена — включить с подсказкой).

В шаблонах Павла Чистова уже есть огромное количество необходимых конструкций в ежедневной работе разработчика 1С (циклы, условия, создание процедур и т.п.).

Отправить резюме

    Я согласен на обработку персональных данных в соответствии
    со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

    Pекомендовать друга

      Выбрать вакансию
      • Программист 1С
      • Консультант-аналитик 1С
      • Разработчик Android
      • Разработчик iOS
      • Разработчик React JS (middle)
      • Разработчик React Native (middle)
      • UX/UI дизайнер
      • Аналитик
      • QA engineer (тестировщик)
      • Разработчик PHP (senior)
      • Разработчик React JS
      • Разработчик Flutter
      • Разработчик React Native
      • Проекты для команды специалистов 1С
      • Вакансия для специалистов 1С: ИП, СЗ и юрлиц
      • Разработчик PHP
      • Ведущий консультант Microsoft Dynamics 365 Sales
      • Консультант по финансам Microsoft Dynamics AX
      • Руководитель проектов Microsoft Dynamics 365 FO и AX 2012
      • Консультант Microsoft Dynamics AX на зарубежные проекты
      • Ведущий консультант Microsoft Dynamics 365 Finance and Operation
      • Разработчик Microsoft Dynamics 365 for Finance and Operations
      • Разработчик Microsoft Dynamics Axapta
      • Разработчик PHP (фреймворк Yii2 или Laravel)
      • Разработчик Bitrix
      • Ведущий разработчик Microsoft Dynamics AX на зарубежные проекты
      Я согласен на обработку персональных данных в соответствии
      со ст. 9 ФЗ № 152-ФЗ «О персональных данных»

      Спасибо!

      Мы получили ваше резюме. Менеджер свяжется с вами в течение трех дней

      Горящие вакансии