Загрузка массива значений в стандартную форму "Редактирование списка значений" из табличного документа

05.12.13

Задачи пользователя - Корректировка данных

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Обработка группового подбора для 8.2
.epf 17,71Kb ver:1.6
19
19 Скачать (1 SM) Купить за 1 850 руб.
Обработка группового подбора для 8.2
.epf 8,57Kb ver:1.0
25
25 Скачать (1 SM) Купить за 1 850 руб.
Обработка группового подбора для 8.1
.epf 16,68Kb ver:1.6
2
2 Скачать (1 SM) Купить за 1 850 руб.
Иногда бывает необходимо построить совершенно разные отчеты с отбором по некоторому перечню, например, продажи по некоторому списку контрагентов или номенклатуры, дебиторку по некоторому списку реализаций, или же запустить Групповую обработку справочников и документов по некоторому заранее составленному списку. 
Думаю, нет смысла обсуждать выгоду от автоматического подбора в отбор длинных списков - это очевидно.
 
Данная задача не решается без модификации конфигурации.
 
Варианты решения:
1) модифицировать код форм каждого из отчетов, внедряя несколько строк, которые заменяют для каждого из элементов на форме стандартную обработку редактирования списка на свою (как это сделано у e.kogan)
2) модифицировать формы выбора объектов, внедряя несколько строк, которые добавляют на форму кнопку, позволяющую "оповещать о выборе" стандартную обработку редактирования списка (как это сделано здесь).
 
Мне больше нравится второй подход, т.к. своих отчетов может быть наделано много, и еще есть стандартные отчеты (остатки товаров на складах, оборотно-сальдовая), в которые не очень хочется лезть. Зато с объектами, которые нужно подбирать, всё несколько проще - 3-5 документов и 3-5 справочников. Вдобавок форму выбора в типовых редко меняют и при обновлении сильно не мешает.
Но, при желании, подходы можно комбинировать. Например, в Универсальной обработке справочников и документов я также и первый подход реализовал.
 
Если сравнивать сами обработки по функционалу, то вышеупомянутая обработка более универсальная. В текущей обработке зато есть загрузка по дате и периоду и по представлению, что на практике встречается часто. Также из плюшек - для каждого документа или справочника запоминается последний выбранный режим.
 
Хитрости
Одна из проблем, которую удалось решить для универсальности модификаций форм выбора: найти основной реквизит формы выбора и определить его тип. Тема поднималась на ИнфоСтарте, но решалась она довольно злобным кодом, поэтому решил, не мудрствуя лукаво, использовать то, что в формах выбора справочников (документов) в 99% случаев основной реквизит называется "СправочникСписок" ("ДокументСписок"), т.к. так его именует конструктор.
 
А уже тип (имя типа) определяется через отбор по ссылке
ФормаВыбора["СправочникСписок"].ТекСписок.Отбор.Ссылка.Значение.Метаданные().Имя
или так (если в отборе уже был список)
ФормаВыбора["СправочникСписок"].ТекСписок.Отбор.Ссылка.Значение[0].Метаданные().Имя
 
Стандартную форму "Редактирование списка значений" заполняем оповещением:

Для каждого СтрокаПодбора Из ТаблицаПодбора Цикл
    ФормаВыбора.ОповеститьОВыборе(СтрокаПодбора.Ссылка);
КонецЦикла;

 
И еще на последок: как-то понадобилось отобрать в форме списка документов по произвольному отбору. Решение нашлось такое: включаем доступность отбора по ссылке в форме списка:
 
Процедура ПриОткрытии()
   ЭлементыФормы.Список.НастройкаОтбора.Ссылка.Доступность = Истина;
КонецПроцедуры
 
и пользуемся этой обработкой.
 
Внедрение
Внедрение описано в макете README.
 
Если вкратце, то необходимо в процедуру "ПриОткрытии" формы выбора добавить код, который рисует кнопку на командной панели:
 
     ЭлементыФормы.ДействияФормы.Кнопки.Добавить("ПодобратьСписком", ТипКнопкиКоманднойПанели.Действие, "Подобрать списком", Новый Действие("ДействияФормыПодобратьСписком"));
 
А также в модуль формы добавить саму процедуру-обработчик нажатия кнопки.
Процедура ДействияФормыПодобратьСписком(Кнопка)
     
     МнПодбор = Обработки.МножественныйПодбор.Создать();
     Если МнПодбор.Инициализировать(ЭтаФорма) Тогда
          //успех
          МнПодбор.Подобрать(ЭтаФорма)
     КонецЕсли;
     
КонецПроцедуры
 
  
Замечания и отзывы приветствуются!
 
Обновления
05.12.2013 - добавлен подбор по документам (в том числе - по представлениям); добавлена версия для 8.1; обновлена статья

список значений загрузка подбор стандартная форма

См. также

Корректировка данных Зарплата Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ Платные (руб)

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

60000 руб.

06.10.2023    4787    38    20    

45

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    34260    109    152    

75

Корректировка данных Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.

3600 руб.

10.02.2017    111756    672    175    

712

Корректировка данных Программист Пользователь Платформа 1С v8.3 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Представьте, что есть система QR - кодирования, которая НЕ ТРЕБУЕТ изменения конфигурации, НЕ ТРЕБУЕТ изменения ни одной печатной формы для добавления QR-кода, включая внешние, НЕ ХРАНИТ данные штрихкодов и их связь, от чего база не "пухнет", ИМЕЕТ возможность закодировать в QR-коде произвольные данные параметров для последующей обработки полученных данных, УМЕЕТ прикреплять сканы, УМЕЕТ обработать считанный QR-код как ВЫ захотите. А также ХРАНИТ историю операций в обход базы для каждого пользователя в отдельности и УМЕЕТ работать с 2D - сканерами. А также автоматически распознавать отсканированные печатные формы (картинки или pdf-файлы) и выполнять заданные произвольные алгоритмы, в том числе прикрепление их к документам! Обновление 3.2 от 09.06.2024!

19200 руб.

26.08.2018    52752    16    61    

55

Закрытие периода Корректировка данных Программист Пользователь Платформа 1С v8.3 Система компоновки данных 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Внешняя обработка, позволяющая произвольным образом заполнять документ "Корректировка регистров" Предназначена для использования в конфигурациях "Управление торговлей 11", "Управление небольшой фирмой", "ERP Управление предприятием", а также в других конфигурациях, в состав которых входит библиотека стандартных подсистем (БСП) версии 2.2+ и указанный выше документ.

2400 руб.

13.07.2015    51494    175    29    

127

Корректировка данных Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Налоговый учет Налог на прибыль Платные (руб)

Обработка служит для: выравнивания бухгалтерского и налогового учета на определенную дату по выбранным счетам; закрытия остатков по выбранным счетам; обнуления налогового учета (ПР, ВР также будут обнулены)

2880 руб.

05.05.2024    748    11    0    

7

Корректировка данных Программист Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет НДС Платные (руб)

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

6000 руб.

22.01.2025    438    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. cool.vlad4 2 15.12.11 18:08 Сейчас в теме
щас придет yashazz или e.kogan (не поню у кого из них точно была подобная публикация) и скажут уже было, не удивил.
3. mikhailv 20 16.12.11 10:47 Сейчас в теме
(1) cool.vlad4, я согласен, это похоже на разработку e-kogan-а, однако у моей есть одно преимущество: обработка работает с ЛЮБЫМИ отчетами, при этом сами отчеты НЕ НУЖНО модифицировать, как у него. Вместо этого, модифицировать нужно формы выбора, что, на мой взгляд, немного проще, чем залезать в каждый отчет (обычно, справочники, которые нужно так подбирать, исчисляются единицами, а отчеты - десятками). Тем более, в типовые отчеты... Однако, это конечно, же, не панацея для не снятых с поддержки конфигураций.
(2) Yasen, нет, цель была в том, чтобы отфильтровать в отчете по некоторому большому списку. Напр., имеется произвольный список номенклатуры, которая понравилась директору, и по ней хочется построить отчет. ИЛИ, хотим проставить некоторое свойство/категорию у объекта по некоторому опять же списку: берём групповую обработку справочников и документов, отбор "ссылка в списке" и загружаем список.
А чего, собственно, не хватает в Вашей обработке? Вроде бы она самодостаточна?
4. cool.vlad4 2 18.12.11 17:40 Сейчас в теме
(3) понятно....только поправка - у неё
2. Yasen 490 15.12.11 19:14 Сейчас в теме
Я не знаю, было ли, но плюс поставил
Михаил, если я правильно понял изначальную задачу - надо формировать отчеты с отбором по данным табличной части документа.
Посмотрите мою давнюю разработку УПП: вызов универсального отчета из любого документа
Я вызывал "Универсальный отчет" и заполнял его теми настройками которыми удавалось заполнить. Было удобно для контроля движений документа не в форме списка регистра, а непосредственно в отчете.
Если удастся скрестить эти два механизма - мой вызов из документа и Ваш подбор значений в список - честь Вам и хвала )
5. Yasen 490 22.12.11 22:16 Сейчас в теме
Miffka пишет:
А чего, собственно, не хватает в Вашей обработке?


Она работает только с универсальным отчетом. Не с СКД.
6. mikhailv 20 23.12.11 11:05 Сейчас в теме
(5) Yasen, на самом деле тут два аспекта.
Первый: если требуется заполнять универсальный отчет/скд для контроля движений по документу, ИМХО по ТЧ фильтровать нет большого смысла. Если, конечно, пользователь (чисто гипотетически) захочет посмотреть продажи по номенклатуре, которая у него есть в документе.
И второй - программное заполнение отбора по списку, в т.ч. в СКД, - это немного другая задача, достаточно лёгкая при этом: создаём список значений и в отборы его. Если загвоздка в том, как создать отбор в СКД - могу озвучить.
Повторюсь, эта обработка была написана, когда мне принесли список из 30 проектов и попросили построить по ним отчет. Я решил разработать нечто универсальное, и чтобы это не нужно было встраивать в каждый отчет в нескольких местах и проч.
7. Yasen 490 23.12.11 13:48 Сейчас в теме
Miffka пишет:
ИМХО по ТЧ фильтровать нет большого смысла


Бывает нужно. К примеру, моя обработка родилась в результате многочисленных выверок себестоимости в УПП.
То есть возник вопрос по какому-то из производственных документов. И тогда очень удобно открыть отчет с уже заполненными заказами, номенклатурными группами и характеристиками, а дальше уже с помощью отчета анализировать - что же там случилось.

Но судя по количеству скачиваний данной обработки, эта моя идея не очень востребована :)
8. rumik007 09.02.12 16:15 Сейчас в теме
Спасибо за обработку!!! Тока вот написано под 8.1, а лежит под 8.2, пришло переделать на 8.1
9. mikhailv 20 09.02.12 17:04 Сейчас в теме
(8) rumik007, спасибо и вам.
Ставя галочку 8.1, честно говоря, думал о "не-управляемой" форме обработки:) Когда залью более свежую версию - галочку сниму, наверное, т.к. в планах нет поддержки 8.1: все базы на 8.2 или в режиме совместимости.
10. rumik007 09.02.12 18:41 Сейчас в теме
(9)

Я под 8.1 немного чуть-чуть времени потратил и перекинул, и все пошло на ура!!! Так ято еще раз спасибо за идею. Как раз понадобилось отбора по сто и более позиций выбирать.
11. user199589 11.10.13 15:42 Сейчас в теме
Очень удобно. Когда подкоплю денег, скачаю)
12. tdrinkam1 9 20.04.17 12:30 Сейчас в теме
А если нужно более узкое и часто встречающееся применение - заполнить поле списка номенклатуры через форму "Редактирования списка значений" по товарам и услугам, содержащимся в товарном документе (Счета, Заказы покупателя, поставщика, Реализации, Поступления товаров)? чтобы список грузился по содержимому указанного документа(ов)? Сможете такое реализовать?
13. mikhailv 20 20.04.17 16:55 Сейчас в теме
(12) Марат, добрый день! Если не переписывать обработку, Ваша задача решается так:
1) в документе делаете отображение кода
2) делаете "Вывести список", выбираете только колонку "Код"
3) копируете выведенный табличный документ
4) доходите до загрузки списка и вставляете скопированный табличный документ, выбираете загрузку по коду

Если этот путь слишком длинный для Вас, то смогу реализовать сразу кнопку "Заполнить из ТЧ документа". Пишите в ЛС, если требуется. Готов обсудить.
Оставьте свое сообщение