Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Программно через OLE создать запись в справочнике номенклатуры          
Sergey_ka Подменю пользователя
сообщение 18.07.16, 13:55
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день!
Есть задача в 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 ... Не удалось записать запись "Номенклатура"
Подозреваю что есть еще обязательные поля, которые не прописал или в чем проблема?
Заранее спасибо!

Сообщение отредактировал logist - 18.07.16, 15:40

korol1091 Подменю пользователя
сообщение 18.07.16, 15:28
Сообщение #2

Общительный
**
Группа: Пользователи
Сообщений: 49
Спасибо сказали: 9 раз
Рейтинг: 0

Попробуйте выполнить этот код в самой 1С локально, а не через ОЛЕ.

Vladal Подменю пользователя
сообщение 19.07.16, 8:36
Сообщение #3

Оратор
Иконка группы
Группа: Местный
Сообщений: 365
Из: Slovensko
Спасибо сказали: 78 раз
Рейтинг: 0

В справочнике Номенклатура в модуле объекта посмотрите процедуру ПередЗаписью(), где устанавливается контроль.
Топорный способ - ЗаписьНоменклатуры.ОбменДанными.Загрузка = Истина, это поможет записать, но не будет проверки корректности заполненных данных, если таковая была предусмотрена в ПередЗаписью().

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 27.04.24, 2:36
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!