gifts2017

Выгрузка и загрузка значений дополнительных реквизитов справочника "Номенклатура"

Опубликовал Олег Тымко (olegtymko) в раздел Обработки - Обработка справочников

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

Недавно мне была поставлена задача - создать инструмент для менеджеров по заполнению дополнительных реквизитов Справочника "Номенклатура". Хочу с вами поделить с тем, что у меня получилось.

ВЫГРУЗКА

На закладке "Выгрузка" мы можем произвести выгрузку в файл.

Структура выгружаемого файла следующая: шапка в файле состоит из "Код" номенклатуры, "Наименование" номенклатуры и все дополнительные реквизиты. Выгрузка происходит в файл в формате .csv.

Пример выгруженного файла:

 

Для упрощения выгрузки требуемой информации есть поля отбора:

  • Вид номенклатуры - при выборе этого реквизита происходит подбор дополнительных реквизитов и устанавливается необходимость выгрузки в файл посредством флажка в дополнительном реквизите - "Обязательное заполнение".
  • Для уменьшение времени работы с формированием файла обработка автоматически определяет нужно ли выгружать номенклатуру по данному виду номенклатуры в файл (если у всех дополнительных реквизитов элемента Справочника "Номенклатура" запонены эти реквизиты, то флажок выгружать в файл автоматически не ставить. Но его можно установить вручную).

ЗАГРУЗКА

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

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

Для удобства использования обработки добавлены кнопки "Установить все флажки" в таблице либо "Снять все флажки" в таблице. При формировании и загрузке файла в формате .csv используется разделитель ";".


Проверенно на релизе: Управление торговлей, редакция 11.1 (11.1.1.17)

Релизы:

Версия 1.3:


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

В формат выгрузки и загрузки файла добавлен следующий порядок файлов:

1. Код (информативноеполе)

2. Артикул (информативное поле)

3. Наименование (информативное поле)

4. Наименование полное (при загрузке из файла обновляет "Наименование полное")

5.Файл картинки (адрес файла картинки)

6. Файл описания сайта (адрес описания для сайта)

7. Дополнительные реквизиты и т.д. (значения дополнительных реквизитов)

Файл картинки должен быть расположен в каталоге с загружаемым файлом: /image/

Файл описания должен быть расположен в каталоге с загружаемым файлом: /description/

 

Просьба при нахождении каких то ошибок или пожеланий обязательно отписываться.

 

 

 

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

Наименование Файл Версия Размер
ДополнительныеРеквизитыНоменклатуры 99
.epf 17,92Kb
22.09.13
99
.epf 1.3 17,92Kb Скачать

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение

Комментарии

1. Д. Р. (starjevschik) 18.02.14 22:02
Идея хорошая, полезная. Спасибо автору. Помогла сильно, но пришлось ковыряться. Реализация неуниверсальная, не считая просто ошибок. Пришлось исправлять довольно существенные вещи. Что заметил:
- в УТ 11.0.6.9 ФайлОписанияДляСайта в номенклатуре отсутствует
- Заточено исключительно под доп. реквизиты вида номенклатуры. Общие вообще не рассматривает.
- Доп. реквизиты имеют вообще-то произвольные названия, в том числе и из нескольких слов. А из этого названия делается наименование колонки таблицы значений, что, понятное дело, приводит к ошибке. Это немаленькая проблема, между прочим.
- кусочек кода
Процедура ЗагрузитьНоменклатуруСервер()
....
		Номенклатура = Справочники.Номенклатура.НайтиПоКоду(Строка.Код).ПолучитьОбъект();
		Если Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
...Показать Скрыть

здесь очевидна ошибка в типах, которая происходит из-за неправильных названий переменных. Назвал бы объект - объектом, а ссылку - ссылкой, не ошибся бы :). Неправильные названия встречаются в обработке, всякие Стр1, Обр, строки массива называются колонками и т.п.
- Грузит, как я понял, только строковые значения. А справочники? тоже пришлось доделывать.
- если второй раз нажать "Загрузить", получается ошибка неуникальности каких-то колонок, уже не стал разбираться.
В общем, как заготовка годится, но до товарного продукта еще есть куда расти.
2. Алексей (manoff) 27.02.14 15:43
Не поделитесь своим вариантом с возможностью загрузки доп. реквизита типа справочник?
UkRA; lu-natic; +2 Ответить 1
3. Д. Р. (starjevschik) 03.03.14 10:07
(2) manoff, мне не жалко, но я исправлял для конкретной загрузки у себя, поэтому обработка не стала более универсальной. В частности, из справочников я ее научил загружать только значения свойств объектов и страны мира :)
Прикрепленные файлы:
ДополнительныеРеквизитыНоменклатуры 1.3.epf
4. Андрей Свиридов (fprom) 14.03.15 18:21
День добрый,
С ходу не заработала, хотя идея хорошая (не находит файл csv при выгрузке, используем 8.3.5.1383/УТ11.1.9.70, но с Линуксовыми серверами). У вас обработка на COM-объектах построена?
5. Олег Тымко (olegtymko) 16.03.15 17:27
(4) fprom, Добрый. На com. Но не сделана на клиент-серверный вариант. На недели исправлю чтобы можно было использовать обработку не в файловой базе (либо где сервер и клиент на разных машинах).
6. РA Uк (UkRA) 02.10.15 14:19
В рамках поддержки микро-малого предпринимательства (т.е. даром или за символическую плату), может кто-нть добавить возможность проделывать точно такие же операции со справочником клиенты, в частности: Фр/Физ; Код; Дата регистрации;Публичное наименование; Рабочее наименование;Тип отношений;Головное предприятие;Адрес;Телефон;Электронная почта;Дополнительная информация.
Огромное спасибо olegtymko и starjevschik - вариант 1.3 очень выручил!

Заранее благодарю!
7. pavel ev (pavelyar) 08.12.15 13:31
Обработка "Свойст" на скрине.
8. Андрей Хабаровский (fkadastro) 08.02.16 10:52
Ошибка при выгрузке:
{Обработка.ДополнительныеРеквизитыНоменклатуры.Форма.Форма.Форма(476)}: Ошибка при вызове метода контекста (Добавить)
ТЗ.Колонки.Добавить(Колонка.ДопРеквизит);
//по причине:
//Неверное имя колонки


При этом имя колонки имеет вид "Страна (Товары все)" - где Страна это реквизит, Товары все - вид номенклатуры - после жмака по кнопке Найти

Ессно скобки и пробелы выдают ошибку, и при загрузке тоже самое

Если в csv убрать все пробелы и скобки, то при загрузке Номенклатуры:
{Обработка.ДополнительныеРеквизитыНоменклатуры.Форма.Форма.Форма(125)}: Поле объекта не обнаружено (Страна (Товары все))
Значение = Строка[Имя.Свойство.Наименование];


Если исправить в файле колонку на "Страна (Товары все)" то уже вылезает:
{Обработка.ДополнительныеРеквизитыНоменклатуры.Форма.Форма.Форма(385)}: Ошибка при вызове метода контекста (Добавить)
Таблица.Колонки.Добавить(СокрЛП(Колонка),ОписаниеТиповС);

по причине:
Неверное имя колонки


короче ни туда ни сюда

как надо исправить код?
Спасибо
9. николай Рыганов (arhangelru) 30.03.16 13:33
Добрый день,

Подскажите пожалуйста а для УТ 10.3 есть такая обработка?
10. Дмитрий Семенов (SDmitriy2) 09.06.16 13:57
в ut 11.2 Возникает ошибка
"Неверное имя колонки"
Прикрепленные файлы:
11. Олег Тымко (olegtymko) 09.06.16 17:26
(10) SDmitriy2, Добрый день. Обработка писалась для релиза: УТ 11.1.1.17. Вы можете написать номер релиза вашей конфигурации, а я на днях попробую проверить работает ли этот функционал на вашей версии, если получиться - доработаю.
12. Irina Shuina (iren2405) 11.06.16 11:39
(11) olegtymko, Аналогичная проблема как и у SDmitriy2, релиз 11.2.3.129
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа