[УТ11] Наглядное заполнение документа "Заказ Клиента" по таблице (например, Excel, управляемое приложение)

Покупатели часто присылают заказываемые позиции в электронном виде, причем каждый клиент шлет инфу в "своём" формате. Используя данную обработку на основании любых табличных данных можно в полуавтоматическом режиме формировать документ Заказ Клиента (если предварительно настроить связь между наименованием, кодом, артикулом клиента и своей номенклатурой (это стандартный справочник УТ11  — "номенклатура поставщиков", кстати эту связь можно формировать непосредственно из обработки). Можно также создавать документы, синхронизируя со своей номенклатурой по коду, артикулу, наименованию, штрихкоду (без использования справочника "номенклатура поставщиков"), есть возможность комбинировать разные виды синхронизации. Обработка создана на основании обработки http://infostart.ru/public/124918/ (заимствует из нее интерфейс и общие принципы работы, но создает другой вид документа и может по другому принципу (с учетом остатков на складе) синхронизировать номенклатуру, и как следствие: предназначена для продавцов, а не для закупщиков)

Порядок загрузки (пункты соответствуют овалам на картинке):

Форма обработки

1. Указываем клиента, и склад, с которого предполагается отгрузка (для возможной проверки остатков), справа также можно указать других клиентов по номенклатуре которых предполагается поиск (он будет использоваться, если основное сопоставление не произошло) 

2. Копируем исходную таблицу в таблицу формы (через буфер обмена) можно раздвигать столбцы, чтобы полностью видеть содержимое ячеек

3. Задаем настройки (в виде адресов строк и столбцов таблицы), обязательно задать: 

   — начало (первая строка с которой начинается загрузка)

   — конец (последняя строка загрузки)  

   — артикул, код, наименование, артикул партнера, код партнера, наименование партнера, штрихкод (поле по которому будет произведена идентификация нашей номенклатуры) — достаточно указать одно из этих полей (если указать несколько, то обрабатыватся будут последовательно до тех пор пока не найдется соответствие).

   — количество — из этого столбца берется количество упаковок

не обязательно:

   — признак пропуска строки — указывает на столбец, по которому обработка может пропускать строки при загрузке (проверяется наличие любого значащего символа в ячейке), это удобно при загрузке документов разбитых по страницам.

Настройку можно производить указанем ячейки (сначала выбирается настройка, затем — непосредственно ячейка) — её адрес вводится в настройку.

4. после настройки нажимаем «Преобразовать»  — в нижней таблице появятся строки будующего документа «Заказ Клиента» (их можно откорректировать непосредственно в таблице). В верхней таблице — удачно проассоциированные данные закрасятся зеленым, неудачно — красным. Через контекстное меню ячейки верхней таблицы можно призвести заполнение справочника «Номенклатура Поставщиков»(или Регистра сведений Штрихкоды Номенклатуры), для полей отмеченных красным, и повторить команду «Преобразовать»

5. Визуально проверяем состав таблицы.

6. Создаем документ Заказ Клиента товаров и услуг, нажав на соответствующую кнопку (Цена, СтавкаНДС бурутся из базы данных)

Настройки — можно сохранить в файл, который можно в дальнейшем использовать снова.

PS: Если в списке настроек выбрано поле со значением в виде адреса — то любой щелчек мышью в верхней таблице будет менять информацию в соответствующей настройке, поэтому рекомендую после задания настроек, активизитовать одну из 4 последних строк настроек (они имеют логический тип, и не зависят от активации ячеек верхней таблицы).

PS2: Справочник «НоменклатураПоставщиков» используется несмотря на «противоречивое» название, однако конфигурация позволяет подчинять элементы этого справочника элементам справочника «Партнеры», вне зависимости от свойств «Клиент» или «Поставщик».

PS3: Если же добавить справочник «НоменклатураКлиентов» с той же структурой что и «НоменклатураПоставщиков», обработка будет брать информацию из этого нового нестандартного справочника (в этом справочнике можно ослабить некоторые ограничения по сравнению со стандартным справочником «НоменклатураПоставщиков»).

12 Comments

  1. mxm2

    (1) Eugeneer, можно конечно, сделать универсальную загрузку (она вобщем-то сейчас разрабатывается в режиме «нужно, но не срочно»), но она не будет наглядной. С другой стороны, у обработок сходный интерфейс, но функционал существенно различен (в частности в Заказ не загружаются стоимостные показатели и характеристики ГТД, а номенклатура в Заказе (при дублировании сооветствующих элементов) может подбираться исходя из текущих остатков на складе), да и пересчет количества в заказе (при формировании документа) немного другой. И наконец, так сделано, чтобы проще было настроить права пользователей (ибо не все то нужно продавцам, нужно и закупщикам и наоборот).

    Reply
  2. AlexO

    Во-первых, сразу видно — автор девушка. По обстоятельности и прозрачности без заумствований.

    Во-вторых — наглядная, простая и весьма полезная вещь.

    Человек найчился сам, и дал возможность другим двумя кликами делать нужные операции.

    И даже есть сохранение настроек, пусть и в текстовый файл. Плюс.

    Reply
  3. mxm2

    (3) AlexO, не знаю по какому принципу Вы классифицируете обработку по гендерному признаку…) но в этом Вы ошибаетесь)…, а вот заказчиком действително была женщина.)

    Reply
  4. son_v

    Довольно интересная идея. У нас подобная проблема есть с загрузкой анкет клиента. Формат файла постоянно меняется.

    Reply
  5. dumal

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

    Reply
  6. alexex

    спасибо за обработку, пригодилась…

    небольшое замечание в коде…

    Если в конф. нет спр-ка «НоменклатураКлиентов», данная конструкция не работает

    Запрос = Новый Запрос(?(Метаданные.Справочники[«НоменклатураКлиентов»] = Неопределено, ТекстЗапроса, СтрЗаменить(ТекстЗапроса, «НоменклатураПоставщиков», «НоменклатураКлиентов»)));

    сделал так

    Запрос = Новый Запрос(?(НайденСпрПоИмени(«НоменклатураКлиентов»), ТекстЗапроса, СтрЗаменить(ТекстЗапроса, «НоменклатураПоставщиков», «НоменклатураКлиентов»)));

    + функция

    &НаСервере
    Функция НайденСпрПоИмени(ИмяСпр)
    
    Если  Метаданные.Справочники.Найти(ИмяСпр) = неопределено тогда
    Возврат Ложь
    КонецЕсли;
    
    
    
    Возврат  Истина;
    
    
    КонецФункции // НайденСпрПоИмени()

    Показать

    Reply
  7. mxm2

    (7) alexex, большое спасибо за замечание,

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

    Reply
  8. svetanik

    mxm2, посоветуйте, где рыть? У меня моя обработка в УТ11 (управляемая) заполняет таблицу Заказа клиента данными Номенклатуры и её количества. Заказ нормально сохраняется, табличная часть заполняется… А Состояние обеспечения не видит данных для анализа! Помогите плз советом!

    Reply
  9. mxm2

    (9) svetanik, Попробуйте создать ЗаказКлиента «вручную», (он должен делать все нужные движения), а затем при помощи обработки просмотра значений реквизитов (например одной из этох: http://infostart.ru/public/175217/, http://infostart.ru/public/14747/) сравните Заказ, сформированный обрабткой и заказ сформированный вручную (скорее всего не заполняется какое-то знАчимое поле)

    Reply
  10. ulovka

    Обработкой удобно пользоваться, но вот в редакции 11.1 при нажатии кнопки «преобразовать» вываливается ошибка:

    Форма.Форма.Форма(306)}: Ошибка при вызове метода контекста (Выполнить)

    ТЗ = Запрос.Выполнить().Выгрузить();

    по причине:

    {(47, 88)}: Поле не найдено «ТоварыНаСкладахОстатки.ВРезервеОстаток»

    ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) — ЕСТЬNULL(ТоварыНаСкладахОстатки.<<?>>ВРезервеОстаток, 0) КАК КоличествоОстаток

    Reply
  11. ulovka

    Еще автору на заметку: обработка не работает с таблицами в которых более 999 строк.

    Reply
  12. user1041099

    Обработка не работает в УТ 11.4

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *