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

05.12.13

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

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

Файлы

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

Наименование Скачано Купить файл
Обработка группового подбора для 8.2
.epf 17,71Kb ver:1.6
19 2 500 руб. Купить
Обработка группового подбора для 8.2
.epf 8,57Kb ver:1.0
25 2 500 руб. Купить
Обработка группового подбора для 8.1
.epf 16,68Kb ver:1.6
2 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой
Иногда бывает необходимо построить совершенно разные отчеты с отбором по некоторому перечню, например, продажи по некоторому списку контрагентов или номенклатуры, дебиторку по некоторому списку реализаций, или же запустить Групповую обработку справочников и документов по некоторому заранее составленному списку. 
Думаю, нет смысла обсуждать выгоду от автоматического подбора в отбор длинных списков - это очевидно.
 
Данная задача не решается без модификации конфигурации.
 
Варианты решения:
1) модифицировать код форм каждого из отчетов, внедряя несколько строк, которые заменяют для каждого из элементов на форме стандартную обработку редактирования списка на свою (как это сделано у e.kogan)
2) модифицировать формы выбора объектов, внедряя несколько строк, которые добавляют на форму кнопку, позволяющую "оповещать о выборе" стандартную обработку редактирования списка (как это сделано здесь).
 
Мне больше нравится второй подход, т.к. своих отчетов может быть наделано много, и еще есть стандартные отчеты (остатки товаров на складах, оборотно-сальдовая), в которые не очень хочется лезть. Зато с объектами, которые нужно подбирать, всё несколько проще - 3-5 документов и 3-5 справочников. Вдобавок форму выбора в типовых редко меняют и при обновлении сильно не мешает.
Но, при желании, подходы можно комбинировать. Например, в Универсальной обработке справочников и документов я также и первый подход реализовал.
 
Если сравнивать сами обработки по функционалу, то вышеупомянутая обработка более универсальная. В текущей обработке зато есть загрузка по дате и периоду и по представлению, что на практике встречается часто. Также из плюшек - для каждого документа или справочника запоминается последний выбранный режим.
 
Хитрости
Одна из проблем, которую удалось решить для универсальности модификаций форм выбора: найти основной реквизит формы выбора и определить его тип. Тема поднималась на ИнфоСтарте, но решалась она довольно злобным кодом, поэтому решил, не мудрствуя лукаво, использовать то, что в формах выбора справочников (документов) в 99% случаев основной реквизит называется "СправочникСписок" ("ДокументСписок"), т.к. так его именует конструктор.
 
А уже тип (имя типа) определяется через отбор по ссылке
ФормаВыбора["СправочникСписок"].ТекСписок.Отбор.Ссылка.Значение.Метаданные().Имя
или так (если в отборе уже был список)
ФормаВыбора["СправочникСписок"].ТекСписок.Отбор.Ссылка.Значение[0].Метаданные().Имя
 
Стандартную форму "Редактирование списка значений" заполняем оповещением:

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

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

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

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

14640 руб.

29.04.2020    49267    134    159    

90

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

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

3660 руб.

10.02.2017    120234    722    177    

760

Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

24400 руб.

27.10.2017    45091    31    13    

49

Корректировка данных Закрытие периода Мастера заполнения Программист Бизнес-аналитик Бухгалтер Пользователь 1С 8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление нашей фирмой 3.0 1С:УНФ Платные (руб)

Оптимизируйте процесс закрытия периодов. Автоматизируйте любые, даже самые сложные правила переноса и выполните инвентаризацию остатков за минуты. Гибкая обработка для 1С, которая работает как самостоятельный модуль — без привязки к БСП и с поддержкой большинства конфигураций. Ваш идеальный помощник для закрытия периода, исправления ошибок, реорганизации учета, корректировки и списания остатков.

6100 руб.

28.01.2026    915    2    0    

2

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

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

5084 руб.

13.07.2015    54658    186    31    

138
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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) доходите до загрузки списка и вставляете скопированный табличный документ, выбираете загрузку по коду

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