Вопрос № 171599: Добрый день! 1с 8.1 обработка по загрузке контрагентов из txt. Сами контрагенты в справочник загружаются на Ура, а вот регистр КонтактнаяИнформация записываться упорно не хочет, выполняю код (в приложении), а в ответ: {Форма.Форма(97)}: Ошибк...
Вопрос № 171599:
Добрый день! 1с 8.1 обработка по загрузке контрагентов из txt. Сами контрагенты в справочник загружаются на Ура, а вот регистр КонтактнаяИнформация записываться упорно не хочет, выполняю код (в приложении), а в ответ:
{Форма.Форма(97)}: Ошибка при вызове метода контекста (Записать): Операция не выполнена! КИ.Записать();
Обработку писал другой человек ,а до ума доводить пришлось мне. Вроде все посмотрел все ошибки поправил, а тут немогу понять в чем дело. Есть мысль что регистр владельца
не распознает, отбор не делает, но вот почему? Не силен я в восьмерке! (((
Отвечает Maxim S. Orlov, Студент :
Здравствуйте, Serega_artem! Было бы не плохо, если бы вы еще и файл прикрепили с данными текстовыми ;), ну да ладно.
Ошибка вызвана тем, что только что созданный элемент на момент записи Регистра сведений еще не записан, что и вызывает ошибку.
КИ = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); КИ.Отбор.Объект.Значение = НовыйЭлемент.Ссылка; - в этой строчке будет передана пустая ссылка, если элемент не записан. КИ.Отбор.Объект.Использование = Истина; КИ.Прочитать(); НоваяЗаписьКИ = КИ.Добавить(); НоваяЗаписьКИ.Объект = НовыйЭлемент.Ссылка; НоваяЗаписьКИ.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон; НоваяЗаписьКИ.Вид = "Теле
фон контрагента"; НоваяЗаписьКИ.Представление = Телефоны; НоваяЗаписьКИ.Поле1 = "1"; НоваяЗаписьКИ.Поле2 = "1"; НоваяЗаписьКИ.Поле3 = "1"; НоваяЗаписьКИ.Поле4 = "1"; НоваяЗаписьКИ.Поле5 = "1"; НоваяЗаписьКИ.Поле6 = "1"; НоваяЗаписьКИ.Поле7 = "1"; НоваяЗаписьКИ.Поле8 = "1"; НоваяЗаписьКИ.Поле9 = "1"; НоваяЗаписьКИ.Поле10 = "1"; НоваяЗаписьКИ.Комментарий = "123"; НоваяЗаписьКИ.ЗначениеПоУмолчанию
= Истина; НовыйЭлемент.Записать(); КИ.Записать(); Всего = Всего +1; Иначе Сообщить("Контрагент " + СокрЛП(НаименованиеК) + " уже существует!" ); КонецЕсли; КонецЦикла;
Сообщить("Всего записанно "+Всего + " новых контрагента(ов)"); КонецПроцедуры
Оформил тэг "Код". Maxim S. Orlov, Вы имеете возможность оформлять ответ, пожалуйста, пользуйтесь ей.
-----
∙ Отредактировал: Владимир Лазурко, Профессионал
∙ Дата редактирования: 26.08.2009, 11:27 (время московское)
----- Не надо чинить то, что еще не сломалось .......
Ответ отправил: Maxim S. Orlov, Студент
Ответ отправлен: 25.08.2009, 15:53
Оценка ответа: 5 Комментарий к оценке: Большое спасибо за помощь!
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 253538
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Кулевский Сергей Владимирович, Студент :
Здравствуйте, Serega_artem! Нельзя устанавливать отбор на несуществующий элемент. 1. Сначала запишите его в системе (новЭлемент.Записать()), если это новый элемент. А потом устанавливайте отбор. 2. Если хотите записывать в конце модуля, то попробуйте использовать, СсылкаНового(), когда устанавливаете отбор. Я рекомендую первый вариант, с маленькой доделкой. Организовать поиск по справочнику. А если элемент не найдется, то создавать уже.
Оценка ответа: 5 Комментарий к оценке: Большое спасибо за помощь!
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 253556
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает Anton Devitsin, Профессионал :
Здравствуйте, Serega_artem.
Вдумчиво пересмотрите свой исходник. Вы пытаетесь записать набор записей в регистр сведений с измерением, в значении которого запись справочника (а запись-то эта еще не создана).
Надо записать элемент справочника, и только потом задавать его как значение измерения и записывать
набор записей.
И если он в твоей Вашей конфигурации периодический - не забудьте задать дату записи.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.