Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программно через OLE создать запись в справочнике номенклатуры
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Sergey_ka
Добрый день!
Есть задача в VisualFoxPro программно через OLE создать запись с справочнике номенклатуры 1c 8.3 "Управление торговлей для Украины 2.3

Вот код:
oN esobj = createobject("V83.Application") 
strConnect='File="'+ALLTRIM(Spath)+'";Usr="'+ALLTRIM(opername)+'";pwd="'+alltrim(operpass)+'"'
oNesobj.Connect(strConnect)
ЗаписьНоменклатуры=oNesobj.Справочники.Номенклатура.СоздатьЭлемент()
ЗаписьНоменклатуры.УстановитьСсылкуНового(oNesobj.Справочники.Номенклатура.ПолучитьСсылку())
ЗаписьНоменклатуры.Наименование=tmpnomen.name
ЗаписьНоменклатуры.НаименованиеПолное=tmpnomen.name
ЗаписьНоменклатуры.Весовой=.F.
ЗаписьНоменклатуры.Услуга=.F.
ЗаписьНоменклатуры.ВидНоменклатуры=oNesobj.Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Розница")
ЗаписьНоменклатуры.СтавкаНдс=oNesobj.Перечисления.СтавкиНдс.БезНдс
ЗаписьНоменклатуры.Артикул=tmpnomen.nnomer    

***********Добавляю в справочник ед. изм. запись, и устанавливаю владельца
ЗаписьИзм=oNesobj.Справочники.ЕдиницыИзмерения.СоздатьЭлемент()
ЗаписьИзм.Владелец=ЗаписьНоменклатуры.ПолучитьСсылкуНового()
ЗаписьИзм.ОбменДанными.Загрузка = .T.
ЗаписьИзм.ЕдиницаПоКлассификатору=oNesobj.Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт")
ЗаписьИзм.Наименование="шт"
ЗаписьИзм.Коэффициент=1
ЗаписьИзм.Записать()

******Назначаю единицы измерения для записи номенклатуры
ЗаписьНоменклатуры.БазоваяЕдиницаИзмерения=ЗаписьИзм.Ссылка
ЗаписьНоменклатуры.ЕдиницаДляОтчетов=ЗаписьИзм.Ссылка
ЗаписьНоменклатуры.ЕдиницаХраненияОстатков=ЗаписьИзм.Ссылка
ЗаписьНоменклатуры.ЕдиницаИзмеренияМест=ЗаписьИзм.Ссылка

ЗаписьНоменклатуры.Записать()


 i 

Выделяйте код
 


Вы выполнении команды "Записать" вылетает ошибка OLE IDISPATH exception code 1001 ... Не удалось записать запись "Номенклатура"
Подозреваю что есть еще обязательные поля, которые не прописал или в чем проблема?
Заранее спасибо!
korol1091
Попробуйте выполнить этот код в самой 1С локально, а не через ОЛЕ.
Vladal
В справочнике Номенклатура в модуле объекта посмотрите процедуру ПередЗаписью(), где устанавливается контроль.
Топорный способ - ЗаписьНоменклатуры.ОбменДанными.Загрузка = Истина, это поможет записать, но не будет проверки корректности заполненных данных, если таковая была предусмотрена в ПередЗаписью().
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.