Как открыть форму выбора с определенным отбором в 1С 8.3 ?

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

&НаКлиенте
Процедура ДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

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

КонецПроцедуры

Все функции

Разработчикам и привилегированным пользователям бывает необходим доступ ко всем объектам конфигурации и даже к тем, которые не отображаются в меню. Такой доступ обеспечивает пункт меню «Все функции».

allfmenu

Окно всех функций выглядит следующим образом:

allfform

В нем можно выбрать любой объект «в обход» меню, и работать с ним так же как если бы он был открыт через обычное меню.

Отображение пункта меню «Все функции…» если его нет, обеспечивается настройкой программы в режиме Предприятия, пункт «Сервис->Параметры»
menu15

В окне «Параметры» ставим флаг <Отображать команду «Все функции»>

allf

Если после всех манипуляций пункт «Все функции…» не появился, то надо для текущего пользователя добавить роль, в которой отмечен пункт <Режим «Все функции»> либо в существующей роли отметить этот пункт:

roleall

Сравнение строковых массивов

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

 Пример:

Источник 1 Источник 2
Реализация товаров и услуг №10 от 07.12.2016 Реализация товаров и услуг №5 от 01.12.2016
Реализация товаров и услуг №12 от 05.12.2016 Реализация товаров и услуг №20 от 10.12.2016
Реализация товаров и услуг №5 от 01.12.2016

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

 Для решения проблемы создана обработка, сравнивающая массивы строк. На рисунке показано первоначальное заполнение левой и правой части, как в таблице выше:

 sm1

После нажатия кнопки в правой части остаются те строки, которых нет в левой части:

sm2

 Скачать обработку (1C v8.3) >>

Программно открыть любой файл в операционной системе из 1С

Для того, что бы открыть для просмотра любой файл на диске, например файл Excel, необходимо выполнить одну команду на клиенте:

ЗапуститьПриложение(ИмяФайла);

Имя файла в данном случае полное, например C:\Documents\File.xlsx

Получение имени типа ссылочного значения

Определение имени типа ссылочного значения нужно в случаях выгрузки данных например в XML файл что бы описать формат хранимых данных. К примеру, имя типа для документа «Реализация товаров и услуг» будет выглядеть так: «Документ.РеализацияТоваровУслуг».

Имя типа ссылочного значения «Ссылка» определяется следующим выражением:

ИмяТипа = Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).ПолноеИмя();

Получение ссылки по идентификатору 1С 8.х

При загрузке ссылочных данных из текстовых файлов иногда необходимо получать саму ссылку по имеющемуся строковому идентификатору этой ссылки:

// идентификатор ссылки хранится в переменной Строка_ИД
// получение уникального идентификатора
УИД = новый УникальныйИдентификатор(Строка_ИД);
// непосредственно получение ссылки
Контрагент = Справочники.Контрагенты.ПолучитьСсылку(УИД);

Получить идентификатор ссылки 1С 8.х

Когда требуется получить не саму ссылку, а ее текстовый уникальный идентификатор, например, для записи в текстовый или XML файл, необходимо воспользоваться функцией, доступной из любой ссылки:

// тип получаемого значения — уникальный идентификатор
Идентификатор НекотораяСсылка.Ссылка.УникальныйИдентификатор();
// идентификатор можно преобразовать в строку
ИдентификаторТекстом = Строка(Идентификатор);