Обработка табличной части "Товары" для 8.2 (управляемая форма)

01.03.12

Задачи пользователя - Прайсы

Недостающая для многих "счастливых" обладателей конфигурации "Управление торговлей", 11 редакции обработка, позволяющая осуществить модификацию таб. части документов.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Обработка табличной части товары для 8.2
.epf 21,55Kb
278
278 Скачать (1 SM) Купить за 1 850 руб.

Итак.

Почему-то разработчики 11-ой редакции конфигурации "Управление торговлей" решили, что данная обработка не особо востребована и не стали заморачиваться с ее включением в доступный функционал. Как показывает практика, да и по опыту исследования отзывов пользователей, такое исключение оказалось серьезным упущением. На infostarte подобного функционала не обнаружил, и когда заказчик попросил внедрить обработку, которая была в торговых (да и других) конфигурациях на платформе 7.7, 8.0, 8.1, был вынужден взяться за кисти и краски.

На суд общественности предлагаю то, что удалось сваять. Думаю удастся кому-нибудь помочь и облегчить сосуществование с управляемыми формами в торговле.

Прложенная обработка НЕ ВНЕШНЯЯ, сделать ее таковой не представляется возможным, исходя из того, что это не обработка заполнения, а обработка изменения имеющейся в таб. части информации. Ее необходимо включить в метаданные, воспользовавшись в конфигураторе в дереве метаданных командой "Вставить внешнюю обработку, отчет...".

Обработка разрабатывалась на платформе 8.2.13.219.

 

Возможности, включенную в обработку (обработчики):

  • - Изменить цены на %,
  • - Распределить сумму по суммам,
  • - Распределить сумму по количеству,
  • - Установить ставку НДС,
  • - Установить ручную скидку, %,
  • - Округлить цены до,
  • - Удалить помеченные строки,
  • - Добавить из документа.

Это тот функционал, который потребовался заказчику. Обработчик "Добавить из документа" заказчика особо интересовал, но решил включить и его из спортивного интереса. Дополнение и модификация функционала  исключительно приветствуется.

Особенности такие:

1) форма обработки открывается в модальном режиме,

2) идентификация и сопоставление строк исходной таб. части и новой осуществляется по реквизиту "НомерСтроки", для новых строк, добавленных в режиме "Добавить из документа" этот реквизит будет иметь значение на 1 большее исходного количества строк в табличной части,

3) в форме обработки редактирование строк недоступно (этим можно заняться в основной форме документа), из стандартных действий с табличной частью есть возможность Удаления и Упорядочивания,

4) Система запоминает последнее использованное в обработке действие и предлагает именно его при повторном открытии обработки.

Теперь касаемо того, как вызвать эту внедренную в метаданные обработку из документов системы...

1) В форму документов, требующих изменения механизмами, заложенными в обработку, добавляется в командную панель товаров Кнопка с обработчиком вида:

&НаКлиенте
Процедура автИзменитьТабличнуюЧасть(Команда)

   
Отказ = Ложь;

    Если
Отказ Тогда
        Возврат;
    КонецЕсли;

   
ПараметрЗаголовок = НСтр("ru = 'Изменение табличной части товаров в %Документ%'");
    Если
ЗначениеЗаполнено(Объект.Ссылка) Тогда
       
ПараметрЗаголовок = СтрЗаменить(ПараметрЗаголовок, "%Документ%", Объект.Ссылка);
    Иначе
       
ПараметрЗаголовок = СтрЗаменить(ПараметрЗаголовок, "%Документ%", "заказе клиента");
    КонецЕсли;

   
ПараметрыФормы = Новый Структура;

   
ПараметрыФормы.Вставить("ЦенаВключаетНДС",      Объект.ЦенаВключаетНДС);

   
ПараметрыФормы.Вставить("Товары",               Объект.Товары);

   
ПараметрыФормы.Вставить("Заголовок",            ПараметрЗаголовок);

   
ОткрытьФорму("Обработка.автОбработкаТабличнойЧастиТовары.Форма", ПараметрыФормы, ЭтаФорма, УникальныйИдентификатор);

КонецПроцедуры
// автИзменитьТабличнуюЧасть()

 

Приведенный код использовался для документа "ЗаказКлиента". Для других документов замены потребует часть кода, содержащая "заказе клиента".

 

2) Результат обработки, возвращаемый в документ, естественно, следует обработать в событии "ОбработкаВыбора" формы:

&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)

    Перем
ВыполняемаяОперация;

    Если
ИсточникВыбора.ИмяФормы = "Обработка.автОбработкаТабличнойЧастиТовары.Форма.Форма" Тогда

        //-->
       
автОбработкаВыбораЗаполненияТЧТовары(ВыбранноеЗначение);

    КонецЕсли;

КонецПроцедуры
// ОбработкаВыбора()

&НаКлиенте
Процедура автОбработкаВыбораЗаполненияТЧТовары(ВыбранноеЗначение)

    //-->
   
автОбработкаВыбораЗаполненияТЧТоварыНаСервере(ВыбранноеЗначение);

КонецПроцедуры
// автОбработкаВыбораЗаполненияТЧТовары()

&НаСервере
Процедура автОбработкаВыбораЗаполненияТЧТоварыНаСервере(ВыбранноеЗначение)

   
ТаблицаТоваров = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресТоваровВХранилище);

   
КолВоСтрокИсх = Объект.Товары.Количество();

   
МассивУдалить = Новый Массив;

    Для Каждого
СтрокаТовар Из Объект.Товары Цикл

        Если
ТаблицаТоваров.Найти(СтрокаТовар.НомерСтроки, "НомерСтрокиТЧ") = Неопределено Тогда

           
МассивУдалить.Добавить(СтрокаТовар);

        КонецЕсли;

    КонецЦикла;

    Для каждого
СтрокаТовара Из ТаблицаТоваров Цикл

        Если
СтрокаТовара.НомерСтрокиТЧ > КолВоСтрокИсх Тогда

           
СтрокаТовараТЧ = Объект.Товары.Добавить();

           
ЗаполнитьЗначенияСвойств(СтрокаТовараТЧ, СтрокаТовара);

        Иначе

           
СтрокаТовараТЧ = Объект.Товары.Получить(СтрокаТовара.НомерСтрокиТЧ - 1);

           
ЗаполнитьЗначенияСвойств(СтрокаТовараТЧ, СтрокаТовара, "Цена, Сумма, СтавкаНДС, СуммаНДС, ПроцентРучнойСкидки, СуммаРучнойСкидки, ПроцентАвтоматическойСкидки, СуммаАвтоматическойСкидки");

        КонецЕсли;

    КонецЦикла;


    Для Каждого
СтрокаТовар Из Объект.Товары Цикл

        Если
МассивУдалить.Найти(СтрокаТовар) = Неопределено Тогда

           
ОбработкаТабличнойЧастиТоварыКлиентСервер.ЗаполнитьСуммуВсегоВСтрокеТаблицы(СтрокаТовар, Объект.ЦенаВключаетНДС);

        КонецЕсли;

    КонецЦикла;

    Для Каждого
ЭлМас Из МассивУдалить Цикл

       
Объект.Товары.Удалить(ЭлМас);

    КонецЦикла;

   
ОбработкаТабличнойЧастиТоварыСервер.ЗаполнитьТипНоменклатурыВТаблице(Объект.Товары);
   
ПродажиКлиентСервер.РассчитатьИтоговыеПоказателиЗаказа(Объект, ЭтаФорма);
   
ОбработкаТабличнойЧастиТоварыСервер.ЗаполнитьПризнакИспользованияХарактеристик(Объект.Товары);
   
Элементы.КартинкаНесколькоСкладов.Картинка =    ОбщегоНазначенияУТКлиентСервер.ПолучитьКартинкуНесколькоСкладов(Объект.Товары, СкладГруппа, Истина);

КонецПроцедуры
// автОбработкаВыбораЗаполненияТЧТовары()

 

Приведенный код использовался для документа "ЗаказКлиента". Для других документов наполнение процедуры "автОбработкаВыбораЗаполненияТЧТовары" будет незначительно изменено, а именно:

  • - для приходных документов в перечне свойств процедуры "ЗаполнитьЗначенияСвойств" убираются "ПроцентАвтоматическойСкидки", "СуммаАвтоматическойСкидки", в виду отсутствия соответствующих реквизитов в таб. части "Товары";
  • - последние строки процедуры настраиваются под каждый конкретный документ индивидуально.

Например, для документа "РеализацияТоваровУслуг" концовка будет следующая:

       ...

    ОбработкаТабличнойЧастиТоварыКлиентСервер.ЗаполнитьСуммуВсегоВТаблице(Объект.Товары, Объект.ЦенаВключаетНДС);
   
ПродажиКлиентСервер.РассчитатьИтоговыеПоказателиРеализации(Объект, ЭтаФорма);
   
ОбработкаТабличнойЧастиТоварыСервер.ЗаполнитьПризнакИспользованияХарактеристик(Объект.Товары);
   
ОбработкаТабличнойЧастиТоварыСервер.ЗаполнитьТипНоменклатурыВТаблице(Объект.Товары);
   
Элементы.КартинкаНесколькоСкладов.Картинка = ОбщегоНазначенияУТКлиентСервер.ПолучитьКартинкуНесколькоСкладов(Объект.Товары, СкладГруппа);

Для документа "ПоступлениеТоваровУслуг" концовка будет следующая:

    ОбработкаТабличнойЧастиТоварыСервер.ЗаполнитьТипНоменклатурыВТаблице(Объект.Товары);
   
ЗакупкиКлиентСервер.РассчитатьИтоговыеПоказателиПоступления(Объект, ЭтаФорма);
   
ОбработкаТабличнойЧастиТоварыСервер.ЗаполнитьПризнакИспользованияХарактеристик(Объект.Товары);
   
Элементы.КартинкаНесколькоСкладов.Картинка = ОбщегоНазначенияУТКлиентСервер.ПолучитьКартинкуНесколькоСкладов(Объект.Товары, СкладГруппа);

 

У себя внедрял вызов этой обработки в документы:

  • - Заказ клиента,
  • - Заказ поставщику,
  • - Коммерческое предложение клиенту,
  • - Поступление товаров услуг,
  • - Реализация товаров услуг.

P.S.

Спасибо за внимание, удачных внедрений.

 

См. также

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

Автоматизация учета ЕГАИС в 1С для оптовой торговли, производства и импорта. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

828 руб.

15.12.2015    172623    864    370    

407

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

Автоматический обмен данными с системой ФГИС Меркурий из 1С через ВетИС API: загрузка данных по хозяйствующим субъектам, предприятиям; типов, групп, видов, наименований продукции, сопоставление данных и запись их в базу данных; создание на основании расходных документов транспортных партий, отправка на сервер, печать полученных ветеринарных свидетельств, запрос остатков складского журнала, проведение инвентаризаций, оформление производственных партий.

11500 руб.

08.12.2017    105980    291    110    

147

SALE! 15%

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

Универсальная обработка для загрузки документов из Excel в 1С. Забудьте о ручном вводе: загружайте документы из Excel в 1С за секунды! Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С.

6000 руб.

09.11.2016    241999    1114    908    

1044

SALE! 10%

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

55778 50200 руб.

24.04.2015    197390    157    244    

287

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

Онлайн-заказ - это решение для автоматизации процесса оформления заказов на сайте в торговых организациях. Продукт обеспечивает легкое взаимодействие между компанией и клиентами через веб-интерфейс, интегрированный с 1С:Предприятие. Система позволяет снизить операционные расходы, повысить лояльность клиентов и оптимизировать работу отдела продаж.

57600 руб.

26.11.2024    2356    2    2    

4

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 10.02.2025, версия 9.9 - 9.15)

16800 руб.

20.11.2015    159227    390    378    

520
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. gavrikprog 118 01.03.12 16:06 Сейчас в теме
Приложенная обработка НЕ ВНЕШНЯЯ, сделать ее таковой не представляется возможным, исходя из того, что это не обработка заполнения, а обработка изменения имеющейся в таб. части информации.


Сомнительное утверждение
Проверять пока нет желания, но из того что знаю - вероятность > 50 процентов
2. happyden 25 28.03.12 12:44 Сейчас в теме
Вещь, прикрутил к 11.0.7.21 - юзеры пищат от счастья :)
3. salus 28 14.08.12 20:53 Сейчас в теме
Что за ссылки???

{Обработка.автОбработкаТабличнойЧастиТовары.Форма.Форма.Форма(519,54)}: Переменная не определена (ОбработкаТабличнойЧастиТоварыКлиентСервер)
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", <<?>>ОбработкаТабличнойЧастиТоварыКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВСтрокеТЧ(Объект));
4. lonedog 62 07.09.12 12:33 Сейчас в теме
Что за ссылки???
+1


{Документ.ПоступлениеТоваровУслуг.Форма.ФормаДокумента.Форма(5790,13)}: Переменная не определена (ОбработкаТабличнойЧастиТоварыКлиентСервер)
<<?>>ОбработкаТабличнойЧастиТоварыКлиентСервер.ЗаполнитьСуммуВсегоВСтрокеТаблицы(СтрокаТовар, Объект.ЦенаВключаетНДС); (Проверка: Сервер)
5. lonedog 62 07.09.12 17:44 Сейчас в теме
Прикрутил к 11.0.8.8 пришлось закомментировать пару процедур:

 ОбработкаТабличнойЧастиТоварыКлиентСервер.ЗаполнитьСуммуВсегоВСтрокеТаблицы(СтрокаТовар, Объект.ЦенаВключаетНДС);

 ОбработкаТабличнойЧастиТоварыСервер.ЗаполнитьТипНоменклатурыВТаблице(Объект.Товары);

 Элементы.КартинкаНесколькоСкладов.Картинка =   ОбщегоНазначенияУТКлиентСервер.ПолучитьКартинкуНесколькоСкладов(Объект.Товары, СкладГруппа);


и так еще по мелочи...
да еще пришлось прикрутить пересчет суммы с НДС
пока опробовал на документе "Поступления товаров услуг"
6. _n26__ 29.01.13 11:56 Сейчас в теме
Спасибо! Очень пригодилось!
7. Open-BS 3 26.03.13 15:14 Сейчас в теме
Огромное спасибо! Вы сэкономили мне часов 5 кодинга :)
8. svetanik 6 11.11.13 06:45 Сейчас в теме
Действительно, очень своевременная обработка, т.к. мои бухгалтера привыкли на документами "куражиться", добиваясь нужного результата... А в УТ11 с удивлением не обнаружили такой возможности. Недоработочка разработчиков. Спасибо, что исправили!
9. akvatorg 2 09.12.14 11:54 Сейчас в теме
{Форма.Форма.Форма(116,3)}: Переменная не определена (ОбработкаТабличнойЧастиТоварыСервер)
<<?>>ОбработкаТабличнойЧастиТоварыСервер.ОбработатьСтрокуТЧСервер(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения); (Проверка: Сервер)
10. child1983 13 08.01.15 09:26 Сейчас в теме
Было бы неплохо и для Бухгалтерии 3.0 такую обработку
очень пригодилась бы когда работают от обратного сначала реализацию делают, а на ее основании потом поступление и нужны цены ниже
11. Tangram 162 26.01.15 12:17 Сейчас в теме
Оч. полезная обработка. Но при подключении к 11.1.7 пришлось практически все вызовы общих модулей переделывать, все имена поменялись.
12. romankoav 4 24.10.17 18:00 Сейчас в теме
А в 2017 году так и не появилось внешней альтернативы? Или может в 11 торговле что-то поменялось? Почему обработку нельзя сделать внешней?
Оставьте свое сообщение