gifts2017

Заполнение ПоступлениеТоваровУслуг по внешнему документу в формате XLS (УТ 11)

Опубликовал Nicholas Nemtsev (knemtsev) в раздел Обработки - Обработка документов

Внешняя обработка для автоматического заполнения товарной части документа "ПоступлениеТоваровУслуг" и "ЗаказПоставщику" в Управлении Торговлей 11 (управляемые формы) по внешнему документу в формате XLS (Excel).

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

* Файл
 fill_table_by_xls.epf

* Тип
Внешняя обработка для Управление Торговлей 11 (управляемые формы).

* Назначение
Заполнение/корректировка номенклатуры документов по XLS файлу.

* Зависимости
Для работы обработки требуется внешняя компонента ExcelEditor (Чтение/записьфайла Excel напрямую из 1С без Excel (формат 97/2003) http://infostart.ru/public/18726/)

* Установка
В УТ 11 в управляемом режиме заходите в раздел "Администрирование" панели разделов, в панели навигации слева находите "Дополнительные отчёты и обработки". Добавляете новую обработку и выбираете файл fill_table_by_xls.epf. "Публикация" нужно поставить или в "Режим отладки" (для использования только администратором) или в "Используется".

* Использование
В журнале "Документы поступления" или в открытом документе "ПоступлениеТоваровУслуг" выбираете сверху "Заполнение...", затем в открывшемся списке команд выбираете "Заполнить товары по внешнему документу" и жмёте кнопку "Выполнить". Открывается форма обработки с тремя вкладками. Вначале идём на вкладку "Настройки". Выбираем файл настроек (можно использовать options-example.txt). Редактировать его можно прямо в форме. Этот файл устроен просто: каждая строка содержит имя_колонки=список_возможных_вариантов_заголовков_колонок. имя_колонки менять нельзя.
Затем в поле "Имя первого файла" вводим имя файла Excel из которого надо загрузить данные. Жмём кнопку с зелёной стрелкой и, если в файле удалось хоть что-то распознать, будет заполнен табличный документ. Табличный документ можно произвольно редактировать, удалять лишние строки, заполнять 
колонки вручную копированием и т.д. Если артикулы находятся в поле "Наименование", то его можно попытаться автоматически оттуда извлечь (галка "Артикул в наименовании").
Выбираем тип поиска ("по артикулам", "по наименованию", "по товарам поставщика") и жмём кнопку "Искать товары". В результате заполняется таблица на вкладке "Товары". Для не найденных товаров поле "Номенклатура" остаётся незаполненным. Если поиск производится по наименованию и по наименованию товар не найден, то делается попытка искать по полному наименованию. Таблицу "Товары" также можно произвольно редактировать. При нажатии на кнопку "Заполнить" (внизу), содержимое этой таблицы будет перенесено в выбранный документ и документ будет открыт для редактирования.
Если, например, заполнение делается по Счету, где есть Наименования и Артикулы, а ГТД находится в Счете-фактуре, но там нет Артикулов, по которым и осуществляется поиск, то можно воспользоваться вторым файлом. Выбираем второй файл, жмём кнопку с плюсом в зелёном кружке. Это нужно сделать после того, как таблица Товары уже заполнена по первому файлу.

!!! Будьте осторожны. Товарный состав существующего документа полностью изменяется!

Если заполнение выполняется из открытого документа, то нужно будет обновить содержимое (Все действия/Перечитать). (просто, пока не знаю, как получить форму открытого документа)

* Отмазка
Использование обработки на ваш страх и риск. За испорченные данные автор ответственности не несёт.

* Благодарности

  1. Спасибо (с) Vasil aka Душелов (http://www.dushelov.ru) за внешнюю компоненту ExcelEditor (http://infostart.ru/public/18726/). Ставить Excel на сервер не очень хотелось.
  2. Спасибо Дмитрию (http://infostart.ru/profile/13970/) за пример написания обработки по вводу на основании по технологии БСП (http://infostart.ru/public/79654/).

* История
+ добавление
* исправления
- удаление

	 0.6
 2011-02-09

* Исправлена работа со вторым файлом. ГТД и Страна теперь заполняются в табличном документе.
* Изменено извлечение артикулов и добавлена возможность удаления из артикула заданной подстроки.
	 0.5
 2011-02-07

+ Работа с номенклатурой поставщика (поиск по ней и добавление).
- ПараметрыСеанса.КомпонентаЭкзельПодключена (если кто уже успел добавить, может удалить этот параметр,
он больше не нужен, нашёлся более элегантный способ проверки загрузки).
+ Второй файл. Из второго файла можно загрузить недостающую информацию. Связь по имени.
* Прочие мелкие исправления и дополнения.
	 0.4 
 2011-02-02

+ Табличный документ с полным содержимым исходного файла.
+ Новые колонки: Страна, СтавкаНДС, НДС.
* Исправлено сохранение настроек колонок.
+ Добавление номеров ГТД при поиске товаров.
	 0.3 
 2011-01-28

* Первая публикация

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
ЗаполнениеТаблицыДокументаПоФайлу
.zip 41,62Kb
30.08.14
393
.zip 41,62Kb 393 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

18. Сергей (Che) Коцюра (CheBurator) 11.02.11 00:07
(17) Евгений, предупреждение от Модератора. Убедительная просьба к тебе лично: ты не можешь запретитть копирование функционала, ты не можешь запретить подсматривать программистские решения и новые ходы, ты тем более не можешь запретить человеку выпускать обновления, реализованные на твоих идеях и тових ноухау. Считаешь нужным - патентуй свою разработку/идею/ноухау. Пока что этого нет - любой волен ознакомиться, проникнуться и в том или ином виде склонировать функционал, код и даже скопипастить кусочки кода. И ничего с этим не поделать. Не надо оставлять за собой эксклюзивное право программировать.
.
Остальным участникам дискуссии - просьба (а заодно и предупреждение) воздержаться от необоснованных обвинени/наездов/личных оценок - все в приват и взакрытые группы - там хоть заобсуждайтесь.
.
Евгению: есть желание оспорить данную разработку - подайте модераторам составленную жалобу ПО СУЩЕСТВУ: с указанием процента впрямую скопипастенного кода, описанием идей и подходов, которые вы СЧИТАЕТЕ ЛИЧНО СВОИМИ и которые, по вашему мнению, не имеет права (также укажите на основании чего именно) использовать другой - рассмотрим и вынесем решение. Могу заняться этим лично.
karnilaev; COMPER; artbear; +3 Ответить
19. Nicholas Nemtsev (knemtsev) 11.02.11 08:09
(17) У меня работает и на 7-ке и на 64-х разрядном сервере (правда 1С 8.2 32-х).
Если считаете, что я у Вас что-то украл, то обращайтесь в суд. Или как предложил CheBurator.
20. Дмитирий Флай (ForRegSpam) 22.02.11 20:04
Отлично. Но есть нюансы:
при загрузке артикула из файла цифра преобразуется в строку с пробелами.
Не записывает сумму НДС
21. 1 1 (NON$top) 02.03.11 16:35
Мне в общем очень понравилась разработка. Надо только немного ее до ума довести и все будет ОК.
О замеченных недочетах и ошибках и о том как их исправить пишу ниже...
22. 1 1 (NON$top) 02.03.11 16:38
1. Спр. "НоменклатураПоставщика" открывается без отбора по поставщику.
Решение:
Страница товаров - Товары - ТоварыНоменклатураПоставщика
В Свойствах "СвязиПараметровВыбора" установить "Отбор.Владелец(Партнер)"
Для чего:
Чтобы при выборе номенклатуры поставщика справочник "Номенклатура поставщика" открывался сразу с
отбором по поставщику (так же как и в документе "Заказ поставщику").

2. Документ не обновляется после заполнения (надо нажимать "Перечитать").
Решение:
При нажатии на кнопку "Заполнить" в процедуре "ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, знач Товары) Экспорт"
заменить строчку "Форма.ОбновитьОтображениеДанных();" на "Форма.Прочитать();" для обновления ТЧ документа после заполнения.
Для чего:
Для удобства.
23. 1 1 (NON$top) 02.03.11 23:03
3. При загрузке из файла числовые значения(артикулы) превращаются в строку с пробелами, в этом же виде и попадают в справочник "НоменклатураПоставщика".
Решение:
В процедуре "ПрочитатьИРаспознатьФайл(ИмяФайла,ТабДок)" после строки "ЗначениеЯчейки = СокрЛП(Экзель.ПолучитьЗначениеЯчейки(строка, Колонки[нк].Номер));" добавить еще одну троку "ЗначениеЯчейки = СтрЗаменить(ЗначениеЯчейки, Символы.НПП, "");"
Для чего:
Чтобы не искажались артикулы при загрузке.
24. 1 1 (NON$top) 03.03.11 10:11
4.Кнопка "Заполнить номенклатуру поставщика" заполняет номенклатуры поставщика (при выбранной номенклатуре нашего справочника) только после второго нажатия, хотя после первого нажатия элементы реально создаются, но не заполняются.
Решение:
В процедуре "ЗаполнитьНоменклатуруПоставщикаНаСервере()" заменить строчку "Товары[н].НоменклатураПоставщика=номп_с;" на
"Товары[н].НоменклатураПоставщика=номп_с.Ссылка;"
Для чего:
Для удобства.
25. 1 1 (NON$top) 03.03.11 15:44
5. Не переносится сумма НДС в документ, даже если она заполнена в обработке на вкладке "Товары".
Решение:
В модуле объекта в процедуре "ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, знач Товары) Экспорт"
после строки "ст.СтавкаНДС=Товары[н].Номенклатура.СтавкаНДС;" добавить новую строку "ст.СуммаНДС=Товары[н].НДС;".
Для чего:
Чтобы заполнылась сумма НДС в строках документа, из кторого вызвана обработка.
26. 1 1 (NON$top) 03.03.11 15:47
Ну вот вроде "ньюансы" устранены, буду начинать пользоваться. И всем советую :)
27. Sergey (_tmb) 05.10.11 22:19
Отличная разработка!
Сократили одного оператора))
28. Стас Иванов (7up123) 22.11.11 01:39
Отличная обработка! , как бы сделать чтобы она ещё новую номенклатуру создавала?
29. evger (Evger) 11.01.12 17:01
Оно создает номенклатуру в случае отсутсвия или нет?
30. Игорь Севергин (Afellay) 14.10.16 11:33
Ошибка при открытии обарботки
Прикрепленные файлы:
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа