Собрали 10 лайфхаков, которые используют наши программисты при работе с 1С. Контрагенты, СКД, глюки платформы и многое другое в одном месте. Пользуйтесь и делитесь с друзьями.
1. Есть список контрагентов, нужно быстро узнать их коды в базе
Делаем такой запрос где в кавычках прописываем список наименований контрагентов (должен 100% совпадать с названиями контрагентов в базе):
Таким образом мы избавляемся от необходимости вручную прописывать список контрагентов в запросе, работа происходит в разы быстрее за счёт использования списка через запятую.
2. СКД. Параметр с указанным именем не найден
В СКД если при открытии отчета выходит ошибка “Параметр с указанным именем не найден”, то это может быть глюк платформы. Чтобы его исправить, заходим в схему компоновки данных и на вкладке “Параметры” изменяем для нужного параметра поле “Значение” – очищаем его если заполнено или заполняем если оно пустое. Сохраняем отчет, запускаем его, затем возвращаем всё восвояси и заново запускаем отчёт.
3. Быстрый поиск по фразе в коде (CTRL+F3)
Если в коде нужно быстро найти какую-то фразу, можно выделить её и нажать CTRL + F3, тогда она автоматически подставится в поле поиска сверху и нажатием F3 можно будет переходить по всем местам этой фразы в коде.
Таким образом мы экономим время на копирование фразы (кстати, фразу можно быстро выделить, зажав CTRL и щелкнув внутри фразы), а также на перемещение мышью и вставку этого текста в поле поиска.
4. Как быстро поменять название процедуры, назначенной на событие
Бывает так что имя процедуры слишком длинное или оно устарело. А чтобы его поменять – нужно изменить и название процедуры в коде и исправить её название в обработчике события.
Для быстрого изменения же следует делать это в поле с именем процедуры в событии. При изменении 1С предложит поменять имя процедуры:
И при нажатии «Да» имя процедуры изменится и в коде. Таким образом можно быстро выполнять рефакторинг.
5. Как разрешить выбирать в поле на форме номенклатуру только типа «Комплект» (или другое условие)
Рассмотрим на примере документа «Изменение состава комплекта» из сертификационного экзамена 1С: Специалист по платформе. У него есть реквизит «Комплект» с типом «Номенклатура». Нужно сделать так чтобы в этом поле пользователь мог выбирать номенклатуру только с видом номенклатуры «Комплект».
Для этого нужно у этого реквизита в свойствах указать Параметры выбора Отбор.ВидНоменклатуры(Комплект):
Таким образом больше не нужно ничего писать в коде для гарантии того что пользователь сможет выбирать только комплекты.
6. Глюки платформы. Почему нельзя добавить команду «Перейти» к нужному регистру
Если на форме документа нельзя добавить команду “Перейти” – “Остатки номенклатуры” или любого другого регистра, то нужно открыть свойства нужного регистра и снять-поставить галку “Использовать стандартные команды”. Это глюк платформы.
7. Отладка COM-соединения
Отлаживать COM соединение можно ставя в ключевые места в коде во внешней базе примерно такие блоки:
И затем после вызова этой процедуры через COM соединение проверять наличие файла в каталоге. Если его нет, значит до этой точки код даже не дошёл. В текстовый файл при этом можно добавлять любые фразы и по несколько строк. Также можно сделать единый log файл в который прописывать весь алгоритм работы COM соединения в ключевых его местах.
8. Отладка под определенным пользователем
Чтобы запускать 1С в режиме отладки из конфигуратора от имени другого пользователя, можно задать нужного пользователя в параметрах конфигуратора (меню Сервис – Параметры) на вкладке “Запуск 1С: Предприятия”:
9. Как вернуть реквизит в тоже состояние, в котором оно было до его изменения?
Очень просто, получаем его запросом. Для этого удобно воспользоваться типовой функцией БСП «ЗначениеРеквизитаОбъекта»:
В данном примере использован другой модуль (в отличии от типовой БСП) в который просто была помещена типовая функция БСП, которая строит запрос.
10. Быстрый просмотр временных таблиц запроса
На управляемых формах есть консоль запросов, которая позволяет смотреть данные всех временных таблиц:
Её без проблем можно найти в свободном доступе в интернете. И не нужно тратить время на комментирование и выполнение запроса по частям.
Материал подготовили программисты 1С ИТ-компании Neti