При внедрении ЕРП в первое время часто нужен доступ к документам ввода начальных остатков. Через стандартный интерфейс документы можно открыть так: "НСИ и администрирование" -->"Начальное заполнение" --> "Документы ввода начальных остатков".


В первое время этот путь приходится проходить очень часто. А он довольно громоздкий. Да, помогает помещение списка документов в избранное.

Но тут снова напасть - список документов открывается всегда на верхней строке "Денежные средства.

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

- Добавляем свою команду, модуль команды выглядит так:
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) ПараметрыФормы = Новый Структура("КлючНазначенияФормы", "ДокументыВводаНачальныхОстатков"); ПараметрыФормы.Вставить("ВводНач_ТекущаяХозОперация", ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ВводОстатковТоваровПринятыхНаОтветственноеХранение")); ОткрытьФорму("Обработка.ЖурналДокументовВводаНачальныхОстатков.Форма.ФормаСписка", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка); КонецПроцедурыКомментарий к коду: открываем форму и передаем свой параметр "ВводНач_ТекущаяХозОперация"
- Обработка "ЖурналДокументовВводаНачальныхОстатков", форма списка, модуль формы.
В обработчик "ПриСозданииНаСервере добавляем код "После"&НаСервере Процедура ВводНач_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) ВводНач_ИдентификаторТекущейСтрокиДерева = -1; Если Параметры.Свойство("ВводНач_ТекущаяХозОперация") Тогда ВводНач_ТекущаяХозОперация = Параметры.ВводНач_ТекущаяХозОперация; КоллекцияЭлементовДерева = ДеревоОпераций.ПолучитьЭлементы(); Для Каждого Ветка ИЗ КоллекцияЭлементовДерева Цикл Если Ветка.РазделУчета = "Товары" Тогда КоллекцияСтрокТовары = Ветка.получитьЭлементы(); Для Каждого СтрокаДокумента ИЗ КоллекцияСтрокТовары Цикл Если СтрокаДокумента.ХозяйственнаяОперацияДокумента = ВводНач_ТекущаяХозОперация Тогда ВводНач_ИдентификаторТекущейСтрокиДерева = СтрокаДокумента.ПолучитьИдентификатор(); Прервать; КонецЕсли; КонецЦикла; Прервать; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедурыКомментарий: проверяем наличие параметра, если он найден, то перебираем строки дерева и находим ту, где хоз.операция равна значению параметра. Помещаем идентификатор в добавленный реквизит формы. Реквизит будет использован в обработчике "ПриОткрытии"
- В этой же форме списка в процедуре "ПриОткрытии" добавляем код "После"
&НаКлиенте Процедура ВводНач_ПриОткрытииПосле(Отказ) Если ВводНач_ИдентификаторТекущейСтрокиДерева >= 0 Тогда Элементы.ДеревоОпераций.ТекущаяСтрока = ВводНач_ИдентификаторТекущейСтрокиДерева; КонецЕсли; КонецПроцедуры - В этой же форме списка добавляем реквизит формы "ВводНач_ИдентификаторТекущейСтрокиДерева " - тип Число, длина 5. В реквизите будем хранить идентификатор строки с нужной нам операцией.
В алгоритме используется текстовый идентификатор раздела учета. Чтобы узнать идентификатор для нужного вам раздела учета, нужно посмотреть его описание в общем модуле "ВводОстатковСервер" в области "ОписаниеРазделовВводаОстатков". Там множество однотипных функций "ОписаниеРазделаВводаОстатков....". Нужно найти нужную и взять оттуда идентификатор.

Проверено на следующих конфигурациях и релизах:
- 1С:ERP Управление предприятием 2, релизы 2.5.27.50, 2.5.27.45, 2.5.26.118
Вступайте в нашу телеграмм-группу Инфостарт