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

01.03.12

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

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

Файлы

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

Наименование Скачано Купить файл
Обработка табличной части товары для 8.2
.epf 21,55Kb
279 2 500 руб. Купить

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

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

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Итак.

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

   
Отказ = Ложь;

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

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

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

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

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

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

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

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

 

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

 

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

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

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

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

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

    КонецЕсли;

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

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

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

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

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

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

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

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

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

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

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

        КонецЕсли;

    КонецЦикла;

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

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

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

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

        Иначе

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

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

        КонецЕсли;

    КонецЦикла;


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

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

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

        КонецЕсли;

    КонецЦикла;

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

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

    КонецЦикла;

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

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

 

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

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

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

       ...

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

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

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

 

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

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

P.S.

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

 

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

См. также

Оптовая торговля Розничная торговля Обмен с ГосИС Программист Бухгалтер Пользователь 1С:Предприятие 8 1C:Бухгалтерия Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

Решение создано для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Задавайте вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, накоплен опыт и знания по данным темам.

5000 руб.

18.03.2019    122914    81    115    

203

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

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

15.12.2015    183992    1403    biz-intel    374    

417

Оптовая торговля Розничная торговля НДС 22% 1С 8.3 1С:Управление торговлей 10 Россия Платные (руб)

Пакет обновлений и продолжения поддержки Управление торговлей, редакция 10.3.- обновление которое предоставляет пользователям новые функции, исправления ошибок и т.д.

14640 руб.

19.12.2025    7566    74    48    

71

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

Полнофункциональное расширение для формирования и ведения учета перевозочных документов всех видов (ТН, ТТН, ЭТрН). Печать документов или отправка через ЭПД (Электронный перевозочный документооборот). Поддержка регистрации нескольких перевозок на одну финансовую реализацию (в виде УПД, например), а также одной перевозки на основании нескольких финансовых реализаций. Формирование всех сопроводительных документов из одной отгрузки. Формирование реестра грузосопроводительных документов, доверенности менеджеров для указания ответственных лиц (руководитель, главный бухгалтер, кладовщик) организации для пользователей ИБ. Гибкая настройка функциональности под потребности организации.

3399 руб.

18.04.2017    54581    298    43    

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


Сомнительное утверждение
Проверять пока нет желания, но из того что знаю - вероятность > 50 процентов
2. happyden 25 28.03.12 12:44 Сейчас в теме
Вещь, прикрутил к 11.0.7.21 - юзеры пищат от счастья :)
3. salus 29 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 165 26.01.15 12:17 Сейчас в теме
Оч. полезная обработка. Но при подключении к 11.1.7 пришлось практически все вызовы общих модулей переделывать, все имена поменялись.
12. romankoav 4 24.10.17 18:00 Сейчас в теме
А в 2017 году так и не появилось внешней альтернативы? Или может в 11 торговле что-то поменялось? Почему обработку нельзя сделать внешней?
Для отправки сообщения требуется регистрация/авторизация