![]() |
|
Помогите найти ошибку в коде | ☑ | ||
---|---|---|---|---|
0
fleur
29.11.12
✎
22:41
|
Использую обработку "загрузка данных из табличных документов" и нашла в интернете такую инструкцию, все у меня замечательно грузится, но при этом надо заходить в каждый свежесозданный элемент номенклатуры и нажимать ctrl+s, при этом создается новый элемент в справочнике ЕдиницыИзмерения. Как можно избежать этой "увлекательной" работы?
Инструкция: Чтобы в Вашем файле загрузить новые элементы в справочник "Номенклатура" необходимо сделать следующее: 1. Поставить флаги загрузки наименования, артикула и полного наименования. Режим загрузки - искать. 2. Для реквизита "Вид продукции" поставить флаг обработки и выбрать режим загрузки "Устанавливать" и значение по умолчанию заполнить в значение "Товар". 3. Для базовой единицы поставить флаг обработки, режим искать. 4. Нажать кнопку "События..." верхней командной панели и в событии "Перед записью объекта" прописать следующий код: Цитата: Если НЕ Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ТекстыЯчеек[3])).Пустая() Тогда Отказ = Истина; КонецЕсли; Объект.УстановитьНовыйКод(); Сообщить(ТекстыЯчеек[9]); СпрКлассЕд = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ТекстыЯчеек[9]); Если СпрКлассЕд.Пустая() Тогда СпрКлассЕдОбъект = Справочники.КлассификаторЕдиницИзмерения.СоздатьЭлемент(); СпрКлассЕдОбъект.Наименование = СокрЛП(ТекстыЯчеек[9]); СпрКлассЕдОбъект.Записать(); СпрКлассЕд = СпрКлассЕдОбъект.Ссылка; КонецЕсли; Объект.БазоваяЕдиницаПоКлассификатору = СпрКлассЕд; |
|||
1
fleur
29.11.12
✎
23:19
|
Если НЕ Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ТекстыЯчеек[3])).Пустая() Тогда
Отказ = Истина; КонецЕсли; Объект.УстановитьНовыйКод(); Сообщить(ТекстыЯчеек[9]); СпрКлассЕд = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ТекстыЯчеек[9]); Если СпрКлассЕд.Пустая() Тогда СпрКлассЕдОбъект = Справочники.КлассификаторЕдиницИзмерения.СоздатьЭлемент(); СпрКлассЕдОбъект.Наименование = СокрЛП(ТекстыЯчеек[9]); СпрКлассЕдОбъект.Записать(); СпрКлассЕд = СпрКлассЕдОбъект.Ссылка; КонецЕсли; Объект.БазоваяЕдиницаПоКлассификатору = СпрКлассЕд; //Добавила строчку: Объект.ЕдиницаИзмерения = СпрКлассЕд; |
|||
2
Alex375
30.11.12
✎
04:38
|
Не прокатит. У тебя в СпрКлассЕд ссылка на элемент справочника "КлассификаторЕдиницИзмерения". А реквизит "ЕдиницаИзмерения" есть ссылка на элемент справочника "ЕдиницыИзмерения". Не соответствие типов однако.
Тебе надо еще создать элемент справочника "ЕдиницыИзмерения" и тогда все получится. |
|||
3
fleur
30.11.12
✎
09:02
|
А теперь получится?
Если НЕ Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ТекстыЯчеек[3])).Пустая() Тогда Отказ = Истина; КонецЕсли; Объект.УстановитьНовыйКод(); Сообщить(ТекстыЯчеек[9]); СпрКлассЕд = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ТекстыЯчеек[9]); Если СпрКлассЕд.Пустая() Тогда СпрКлассЕдОбъект = Справочники.КлассификаторЕдиницИзмерения.СоздатьЭлемент(); СпрКлассЕдОбъект.Наименование = СокрЛП(ТекстыЯчеек[9]); СпрКлассЕдОбъект.Записать(); СпрКлассЕд = СпрКлассЕдОбъект.Ссылка; КонецЕсли; Объект.БазоваяЕдиницаПоКлассификатору = СпрКлассЕд; //Добавила строчки: СпрКлассЕд = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(ТекстыЯчеек[9]); Если СпрКлассЕд.Пустая() Тогда СпрКлассЕдОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); СпрКлассЕдОбъект.Наименование = СокрЛП(ТекстыЯчеек[9]); СпрКлассЕдОбъект.Записать(); СпрКлассЕд = СпрКлассЕдОбъект.Ссылка; КонецЕсли; Объект.ЕдиницаИзмерения = СпрКлассЕд; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |