Загрузка из внешнего файла в подборе номенклатуры для БП 3.0

Загрузка из внешнего файла (табличного документа) позаимствована из УТ 11 и приспособлена для формы подбора номенклатуры в БП 3.0. Выполнено в виде расширения, позволяет использовать простой и привычный механизм для любых документов и при этом не вносить никаких изменений в типовую конфигурацию.

В конфигурации "Управление торговлей" уже давно используется этот способ заполнения данных табличных частей документов из внешних файлов. Как правило, при этом используются заранее подготовленные таблицы MS Excel, но это не принципиально. Подойдет любой табличный документ. При этом данные копируются через буфер обмена в понятной и естественной для пользователей манере, поэтому лишних вопросов "Как этим пользоваться?" у бухгалтеров не возникает.

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

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

Версия 3.0.1.3 — успешно протестирована на БП 3.0.74.51. Добавлена возможность заполнения с указанием суммы. Если нужно установить в строках суммы, которые отличаются от результата умножения цены на количество по строке.

Версия 3.0.1.2 — успешно протестирована на БП 3.0.70.39. Добавлена проверка уникальной идентификации: если по указанному идентификатору в ИБ обнаруживается больше одной номенклатуры, получим соответствующее сообщение и исключим ошибку в подборе.

Версия 3.0.1.1 — успешно протестирована на БП 3.0.70.33.

23 Comments

  1. SVGS

    Скачал, работает. Но не покидает ощущение какого-то чуда))

    Есть пара замечаний.

    1) Если идентификатор=Артикул и товар уже есть в базе, то позиции в счете задваиваются

    БЕЗ какого-либо ПРЕДУПРЕЖДЕНИЯ.

    Т.е., сумма счета будет отличаться от исходной и догадаться в каких позициях есть ошибки пользователь должен сам…

    2) Секрет фокуса с правильным заполнением всех полей (кроме артикула, количества и цены)

    остается у автора в черном ящике))

    Перед загрузкой ничего не видно, а после загрузки уже ничего не исправить…

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

    Логика работы в ней достаточно прозрачна, пользоваться удобно.

    Успехов!

    С уважением,

    Сергей.

    Reply
  2. elian

    (1) Если у вас возникнет желание пропиарить ещё какую-нибудь публикацию за мой счет, милости прошу… пишите!

    1). Никакие позиции в документе (счете) не задваиваются. Расширение вообще не заполняет позиции в документе. Она заполняет таблицу подобранных позиций в форме подбора. Ощущаете разницу? После этого все алгоритмы работают так, как их написали в 1С. Если Вы подбираете так, что у вас позиции в документе задваиваются, то моё расширение тут вообще ни причём.

    2). Нет никакого секрета в заполнении всех полей (кроме товара, количества и цены). Обработка вообще не заполняет поля документа. Она заполняет таблицу подобранных позиций в форме подбора. А что там происходит дальше, читайте в руководстве пользователя Бухгалтерии 8.

    Reply
  3. SVGS

    (3) Я пиаром не занимаюсь. Я просто сравниваю обработки с точки зрения удобства использования 🙂

    1) Согласен, несколько некорректно сформулировал проблему задвоения. Задваиваются не записи, а позиции в форме.

    Но сути дела это не меняет. При наличии в форме подбора 2-3 задвоившихся из-за совпадения идентификаторов позиций утомительно их искать, когда в форме штук 50 разных товаров…

    2) Вы же понимаете, что это переводится на русский язык, как «ступайте на …» ))

    Никто не будет читать «Руководство пользователя», чтобы использовать обработку.

    У меня «штуки», «наименования» и др. встали на свои места. Все ОК.

    Однако, пока не загрузишь всё, увидеть это невозможно!

    В общем, за обработку СПАСИБО!

    Но, на мой взгляд, она нуждается в совершенствовании.

    С уважением,

    Сергей.

    Reply
  4. elian

    (4) Если даёте ссылку на другую публикацию в ленте моей публикации — вы именно пиаром и занимаетесь. Можете спросить у любого специалиста по пиару. Но я не против. Можете заниматься.

    1). Это вам не нужны «задваившиеся» позиции. А у другого пользователя может быть так и задумано, чтобы в документ загрузились несколько строк с одинаковым товаром. И зачем тогда ему какие-то автоматические предупреждения о дублях? Вы таблицу с товарами откуда загружаете? Из Экселя? Ну так и проверьте дубли в экселе заранее, если они вам не нужны.

    Чисто теоретически можно добавить кнопку «Проверить дубли», если оно вам надо. Но это весьма специфичная задача, надо сказать.

    2). Нет. Это так не переводится.

    Спасибо за «СПАСИБО» большими буквами!

    Reply
  5. SVGS
    Reply
  6. elian

    (6) Не подумайте, что я отрицательно отношусь к Вам и вашим комментариям.

    Я, кажется, понял суть вашего вопроса. Если артикул в базе дублирован, то в подборе будут дублированы строки.

    Совершенно верно. Так работает декартово произведение в запросе при соединении двух таблиц.

    Если ключ, по которому соединяются две таблицы, дублируется, то в результирующей таблице строки будут удваиваться.

    Да. Соглашусь. В данном случае логику стоит поправить, чтобы этот момент каким-то образом обращал на себя внимание пользователя.

    Ожидайте в новых версиях!

    Reply
  7. SVGS

    СПАСИБО! Кажется, удалось достучаться!!! 🙂

    Reply
  8. elian

    (8) Кто хочет, тот добьётся… кто ищет, тот всегда найдет…

    Reply
  9. elian

    (6) Но справедливости ради надо заметить, что коли уж вы используете артикулы в подборе товара в табличную часть, то вам следует позаботится об их уникальности в системе. 1С уникальность артикулов не контролирует, так как методически они не обязательно используются при подборе товара в табличную часть. Но если вы их используете в качестве уникальных идентификаторов, то позаботьтесь заранее об их уникальности. И тогда никаких проблем не будет.

    Reply
  10. SVGS

    (10) Согласен, что уникальность артикулов — это проблема администратора базы, а не разработчиков.

    В том случае, который я набросал выше, все товары по артикулам идентифицируются однозначно.

    Вопрос в том, что неструктурированный документ (Excel-файл) не переносится в структурированную базу «как есть».

    Приходится или клиенту выкатывать то, что он не заказывал (товар-то один и тот же, а Наименование другое!),

    или в базу заносить два товара с одинаковым артикулом и разными наименованиями.

    В последнем случае, есть надежда, что Администратор или Бухгалтер уберут потом дубликаты штатной обработкой.

    Иначе весь товарный учет посыпется… Я все это говорю к тому, что единого всех устраивающего варианта здесь нет!

    Решение о том, что делать в каждом конкретном случае (заводить новый товар или менять поля с наименованиями в старом)

    лучше оставить за пользователем. Но всю необходимую информацию при этом ему нужно дать!

    Как минимум, он должен видеть перед глазами

    код, артикул, краткое и полное наименования товаров, которые могут продублироваться.

    Хорошо бы, конечно, еще и остаток на складе видеть, но, как говорилось в классическом фильме: «Это вряд ли!»))

    Разные обработки решают эту проблему с разной степенью успешности… 🙂

    Reply
  11. elian

    (11) Вы говорите о какой-то лютой торговой системе. А речь ведь идёт о бухгалтерии, которая предназначена для белой отчетности. В которой из коробки вообще нет загрузки табличных частей из табличных документов. ))) Так как бухгалтерия вообще слабо предназначена в качестве оперативной CRM-системы для моментальной выписки счетов, например…

    Reply
  12. acanta

    (12) а почему не предназначена?

    Reply
  13. elian

    (13) Ну потому, что это бухгалтерия, а не управление торговлей. Для того, чтобы в форме подбора товаров были видны остатки на складе, для этого существуют торговые CRM-системы. А бухгалтерия не для этого.

    Reply
  14. SVGS

    (14) Про остатки на складе: согласен, это я размечтался))

    Но, я сейчас попытался загрузить простенький счет из Excel.

    У меня загрузились идентификатор, количество и цена.

    Все товары были новыми, а Наименование почему-то вообще не загрузилось.

    CRM, не CRM, хочется все ж таки переносить товары с ценами в документы не ручками, а побыстрее 🙂

    Reply
  15. acanta

    (14) бухгалтерия даже отчёты отправить не может. Я даже не знаю для чего она теперь нужна.

    Reply
  16. elian

    (16) ну… строго говоря, отчёты из бухгалтерии всё-таки отправляет человек… поэтому, чтобы отчёты отправились, к бухгалтерии должны прилагаться специально обученные люди… сама по себе она, конечно, ничего не отправляет…

    Reply
  17. elian

    (15) Куда у вас не загрузилось наименование? В моём расширении?

    Reply
  18. SVGS

    (18) Да, не загрузилось в расширении.

    Кажется, я не правильно понял основное предназначение этой обработки…

    Если товара нет в базе, то что она делает? Создает товар ли нет?

    Reply
  19. elian

    (19) Как же она его создаст, если вы передаёте в обработку только идентификатор?

    Откуда же она возьмет наименование? Придумает?

    Это расширение функционала ПОДБОРА номенклатуры, а не создания недостающей номенклатуры…

    Это расширение ничего не создаёт, а только позволяет быстро подобрать.

    Reply
  20. SVGS

    (20) Да, понял. Наименование у меня лежит в том же самом файле.

    Подбором пользоваться буду, а для закачки номенклатуры буду пользоваться другими обработками.

    СПАСИБО за помощь и разъяснения!

    Reply
  21. elian

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

    Reply
  22. elian

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

    Reply
  23. SVGS

    Опробовал версию 3.0.1.2. Всё ОК.

    Для того, чтобы закачать счет из Excel, делаю так:

    1) стандартной обработкой закачиваю номенклатуру в справочник;

    2) этой обработкой закачиваю цены и количество.

    То, что она не желает работать с дублирующимися позициями, помогает.

    Убираем дубликаты и повторяем загрузку. На счет из 100 позиций ушло минут 5-10.

    Если кто-то знает более быстрый способ загрузить счет из Excel в БП 3.0,

    буду благодарен. Пока что работаем так. Автору СПАСИБО!

    Reply

Leave a Comment

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