PDA

Просмотр полной версии : Загрузка доп.реквизитов спр.Номенклатура



Pavel91
20.02.2015, 13:57
Здравствуйте! УТ 11.1. Есть необходимость заплнить справочник номенклатура из excel файла. Вопрос упёрся в доп.реквизиты справочника. Выяснил, что хранятся значения доп.рекв в ТЧ спрНоменклатура. Стандартная загрузка не видит этой ТЧ. Помогите допилить её. Сам дельфист с 1С языком пока туговато дружу

Touch_of_soul
25.02.2015, 08:26
А стандартная обработка загрузка из excel с диска ИТС не подходит?

Pavel91
25.02.2015, 10:41
Стандартную необходимо дописывать - не видит по умолчанию ТЧ спрНоменклатура

avm3110
25.02.2015, 10:54
Стандартную необходимо дописывать
Ну а дописать - сложно?

Pavel91
25.02.2015, 10:57
Проблематично. Иначе бы не писал сюда, с просьбой помочь допилить

avm3110
25.02.2015, 11:21
Проблематично.
Так и тут не кашпировские сидят. Как можно "не видя кода" что-либо посоветовать тебе изменить в кодинге?

Pavel91
25.02.2015, 11:28
Скинуть ИТС обработку? Или выложить кусок кода, который, по моему мнению, является необходимым к дописанию? Понимаю,что не кашпировские, но возможно никто бы и не откликнулся, т.е. смысла хламить форум нет

avm3110
25.02.2015, 11:55
но возможно никто бы и не откликнулся, т.е. смысла хламить форум нет
Так раз создал тему, то значит надеялся на отклик. Нет? Т.е. если сказал "а", то продолжай (говори уже и "б")


Или выложить кусок кода
Ну если можешь локализовать проблему, то давай код. Если с кодингом совсем бЯда, то хоть дай ссылку на обработку (чтобы не было разночтений, а ИТС у самого есть)

ПыСы. А вот "кусок" экселя который импортируешь - вещь явно не лишняя

edpipiya
08.03.2015, 06:12
Бьюсь над той же проблемой - знаний мало, а кажется вот покопаюсь чуть и сделаю. Капаюсь уже 3 дня и ночи - не выходит. Есть обработка заливки номенклатуры. Хочу доделать, что бы сразу заливалить дополнительные реквизиты. В обработке вставляю код для реквизита "Модель" (код ниже). В итоге получаю ошибку - "Поле объекта не обнаружено (Модель)". Большое спасибо за подсказку. УТ 11.1 1С_8.3




&НаСервере
Процедура ЗагрузкаНоменклатуры()
Для Каждого СтрСП Из Объект.СписокЗагрузки Цикл
//Читаем данные
Артикул = сокрлп(СтрСП.Артикул);
Наименование = СтрСП.Наименование;
НаименованиеПолное = СтрСП.НаименованиеПолное;
Родитель = сокрлп(СтрСП.Группа);
ТекстовоеОписание = СтрСП.ТекстовоеОписание;
ВидНом = справочники.ВидыНоменклат� �ры.НайтиПоНаименованию(Ст� �СП.ВидНоменклатуры);
ТипНоменклатуры = ВидНом.ТипНоменклатуры;
ЕдиницаИзмерения = Справочники.ЕдиницыИзмере� �ия.НайтиПоНаименованию(Ст� �СП.ЕдиницаИзмерения);
Производитель = Справочники.Производители. НайтиПоНаименованию(СокрЛ� �(СтрСП.Производитель));
Модель = Справочники.НаборыДополни� �ельныхРеквизитовИСведени� �.Модель;

Группа = Справочники.Номенклатура.Н айтиПоНаименованию(Родите� �ь,Истина);
//Если нет такой тогда создаем.
Если Группа = Справочники.Номенклатура.П устаяСсылка() Тогда
Группа = Справочники.Номенклатура.С оздатьГруппу();
Группа.Наименование = Родитель;
Группа.Родитель = Объект.ВерхняяГруппа;
Группа.Записать();
КонецЕсли;


Далее по коду идут проверки уникальности, я пропуская, а потом код записи новых значений:


Если Номен = Справочники.Номенклатура.П устаяСсылка() Тогда

Номен = Справочники.Номенклатура.С оздатьЭлемент();
Номен.Артикул = Артикул;
Номен.Наименование = Наименование;
Номен.НаименованиеПолное = НаименованиеПолное;
Номен.ЕдиницаИзмерения = ЕдиницаИзмерения;
Номен.ТипНоменклатуры = ТипНоменклатуры;
Номен.СтавкаНДС = Объект.СтавкаНДС;
Номен.ВидНоменклатуры = ВидНом;
Номен.Родитель = Группа.Ссылка;
Номен.Описание = ТекстовоеОписание;
Номен.Производитель = Производитель;
Номен.Модель = Объект.Модель;
Номен.ВариантОформленияПр� �дажи = ВидНом.ВариантОформленияП� �одажи;



Сообщить("Создана номенклатура: "+Наименование);
Номен.Записать();
ИначеЕсли Объект.ИзменятьСуществующ� �е Тогда

НоменОб = Номен.ПолучитьОбъект();
НоменОб.Артикул = Артикул;
НоменОб.Наименование = Наименование;
НоменОб.НаименованиеПолно� � = НаименованиеПолное;
НоменОб.ЕдиницаИзмерения = ЕдиницаИзмерения;
НоменОб.ТипНоменклатуры = ТипНоменклатуры;
НоменОб.СтавкаНДС = Объект.СтавкаНДС;
НоменОб.ВидНоменклатуры = ВидНом;
НоменОб.Родитель = Группа.Ссылка;
НоменОб.Описание = ТекстовоеОписание;
НоменОб.Производитель = Производитель;
НоменОб.Модель = Объект.Модель;
НоменОб.ВариантОформления� �родажи = ВидНом.ВариантОформленияП� �одажи;

alexandr_ll
08.03.2015, 09:48
Модель = Справочники.НаборыДополни? ?ельныхРеквизитовИСведени? ?.Модель;
В типовой конфигурации УТ 11.1 ни у справочника "НаборыДополнительныхРекви зитовИСведений", ни у справочника "Номенклатура" действительно нет реквизита "Модель", о чем программа вам честно и сообщила, если же конфигурация не типовая, то не видя ее, трудно сказать в чем ошибка

edpipiya
09.03.2015, 08:23
Спасибо alexandr_II. Конфигурация типовая. Если я создал дополнительный реквизит "Модель" и в стандарной форме ввода позиции новой номенклатуры отображается поле введения значения этого реквизита, то значит у реквизита некий адрес, который можно использовать в дополнительной обработке. Только как его найти. Долго роясь в программе я нашел это:
https://www.dropbox.com/s/ahs7o4ebxva3skn/1.jpg?dl=0

Если раскрыть "Форму Элемента":
осмотреть его модуль:https://www.dropbox.com/s/qijwka71t3u0sck/2.jpg?dl=0

То в его модуле :
https://www.dropbox.com/s/zviybw0df05rx8u/4.jpg?dl=0

Но как из этого выудить правильное обращение к полю моего реквизита "Модель" - не понимаю. Без полного понимания структуры программы и знаний синтаксиса языка программирования мне сделать это сложно, но Хочется))
Спасибо , если кто подскажет.

alexandr_ll
09.03.2015, 09:43
Еще раз.
Реквизита "Модель" у справочника "Номенклатура" в типовой конфигурации нет.
Если речь идет о табличной части справочника "Номенклатура" "ДополнительныеРеквизиты", то в ней в ней три реквизита:
"Свойство" с типом "ПланВидовХарактеристикСсы лка.ДополнительныеРеквизи� �ыИСведения"
"Значение" с типом "Характеристика.Дополнител� �ныеРеквизитыИСведения"
"ТекстоваяСтрока" строка неограниченной длины
Поэтому конструкция:
Номен.Модель = Объект.Модель;
не является верной.
Должно быть что-то типа
Номен.ДополнительныеРекви� �иты.Добавить();
Номен.ДополнительныеРекви� �иты.Свойство=<Ссылка на нужное свойство>

edpipiya
09.03.2015, 14:04
Спасибо большое, попробую.

edpipiya
10.03.2015, 12:03
Спасибо большое, попробую.

Попробовал- бесполезно. Не понимаю я этот 1С (((.

alexandr_ll
10.03.2015, 12:37
Попробовал- бесполезно. Не понимаю я этот 1С (((.
Не опускайте руки. Пытайтесь, смотрите примеры, обязательно получится!

avm3110
10.03.2015, 13:19
Попробовал- бесполезно. Не понимаю я этот 1С
Вы сразу взялись за довольно не тривиальную задачу. Ну нельзя же в качестве основ физики сразу браться за решения задач матфизики :blush:
Идите "степ бу степ" и все у вас однозначно получится.

alexandr_ll
10.03.2015, 13:34
смотрите примеры
http://infostart.ru/public/308474/

edpipiya
11.03.2015, 13:15
http://infostart.ru/public/308474/

Видел ее, вернусь в Россию, наверное куплю ее. Симку не взял, перевод с карты не могу подтвердит )))