Как открыть форму выбора с определенным отбором в 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 файл, необходимо воспользоваться функцией, доступной из любой ссылки:

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

 

Сохранение таблицы в файл Doc, Excel, PDF, HTML и Txt на клиенте с открытием

Как правило выгружать данные в Excel требуется в табличной форме. В примере на клиенте (на форме) имеется таблица с колонками «Номер», «Наименование» и «Сумма». Выгрузка в Excel проходит только на клиенте для экономии времени и когда на сервере не установлен Excel. Выполняется в два этапа:
1. Заполнение табличного документа
2. Сохранение табличного документа в нужном формате
3. Открытие файла нужной программой

Код выгрузки

allformats

Скачать текст программы >>

Полоса прогресса для серверных процедур

Известной проблемой при использовании управляемых форм является отслеживание процента выполнения какой либо задачи, длительное время находящейся на выполнении на сервере. В этом случае невозможно использовать окно загрузки и прочие интерфейсные вещи, т.к. во время выполнения процедуры нельзя обратится из сервера на клиент. Решением проблемы является использование фонового задания в сочетании с обработчиком ожиданий. Запускается фоновое задание, периодически сообщает о своем состоянии через механизм сообщений, а обработчик ожидания опрашивает пул сообщений лдя данного задания на клиенте и выводит окно состояния.

fz

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

Код формы:

%d0%ba%d0%be%d0%b42-2

Код фонового задания в общем серверном модуле «ФоновыеЗадания»:

%d0%ba%d0%be%d0%b4-3-2

Посмотреть текст модулей

Как узнать свой IP адрес

Для того, что бы узнать свой IP адрес компьютера и вообще понять как видят интернет-ресурсы ваш компьютер, можно ничего не делая просто зайти на сайт

https://2ip.ru/

Есть вариант для компьютеров под управлением Windows:

  1. Нажать кнопку Пуск
  2. В строке команды набираем «cmd», нажимаем Enter
    cmd
  3. В открывшемся окне набираем «ipconfig», нажимаем Enter
  4. В строке, начинающейся с «IPv4» видим свой IP адрес
    ip2