Найти тему
IT Expert

Лайфхаки для разработчиков 1С что бы увеличить продуктивность работы

Оглавление

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

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

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

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

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

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

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

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

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

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

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

-2

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

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

-3

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

-4

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

-5

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

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

-6

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

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

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

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

-7

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

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

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

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

-8

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

Глюки платформы. Почему нельзя добавить команду «Перейти» к нужному регистру

Если на форме документа нельзя добавить команду "Перейти" - "Остатки номенклатуры" или любого другого регистра, то нужно открыть свойства нужного регистра и снять-поставить галку "Использовать стандартные команды". Это глюк платформы.

-9
-10

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

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

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

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

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

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

-11