Имя: Пароль:
1C
1С v8
не записывается строка РС (Несоответствие типов (параметр номер '1'))
,
0 nodrama
 
07.11.23
16:22
Доброго времени суток. Глаз замылился уже ;((

В общем создал новый РС (в пределах секунды, независимый)
Пару измерений, пару ресурсов.
Пытаюсь его программно записать, как обычно. Но при первой же записи (РС пустой). Сразу вылетает с ошибкой

по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Несоответствие типов (параметр номер '1')
по причине:
Несоответствие типов (параметр номер '1')


СоздатьМенеджерЗаписей или СоздатьНаборЗаписей, хоть с отбором, хоть без, хоть как. Ошибка одна и та же.
1 Momus
 
07.11.23
16:23
Пытаюсь его программно записать, как обычно.
а это как?
2 nodrama
 
07.11.23
16:25
(1) Как угодно. Ошибка одна и та же. Ну в примере ниже СоздатьМенеджерЗаписи
Закомментированные строки, остались от СоздатьНаборЗаписей и отбор.


НаборЗаписей = РегистрыСведений.ЗагрузкаПрайсаКитая.СоздатьМенеджерЗаписи();
//НаборЗаписей.Отбор.Артикул.Установить(Артикул);

//НоваяЗапись = НаборЗаписей.Добавить();
НаборЗаписей.Артикул = Артикул;
НаборЗаписей.Номенклатура = НайденнаяНоменклатура;
НаборЗаписей.АртикулИзФайла = АртикулФайла;


НаборЗаписей.СрокПоставки = СрокПоставки;


НаборЗаписей.ЦенаВРублях = Цена;
НаборЗаписей.Период=ТекущаяДата();
НаборЗаписей.Записать();
3 nodrama
 
07.11.23
16:27
РС пустой. по отладке (все ресурсы и измерения заполнены верно)
4 nodrama
 
07.11.23
16:31
По отладке, до момента ошибки... он доходит до

ОбщийМодуль.МиграцияПриложений

    Если ДоступноИспользованиеРазделенныхДанных Тогда
            Запрос.Текст =
            "ВЫБРАТЬ
            |    МиграцияПриложений.Ссылка КАК Ссылка
            |ИЗ
            |    ПланОбмена.МиграцияПриложений КАК МиграцияПриложений
            |ГДЕ
            |    НЕ МиграцияПриложений.ЭтотУзел";
        Иначе
            Если Метаданные.РегистрыСведений.Содержит(Источник.Метаданные()) Тогда
                // @skip-warning СвойствоНеОбнаружено - ошибка проверки.
                Запрос.УстановитьПараметр("ОбластьДанных", Источник.Отбор.ОбластьДанныхВспомогательныеДанные.Значение);
            Иначе
                Запрос.УстановитьПараметр("ОбластьДанных", Источник.ОбластьДанныхВспомогательныеДанные);
            КонецЕсли;
            Запрос.Текст =
            "ВЫБРАТЬ
            |    МиграцияПриложений.Ссылка КАК Ссылка
            |ИЗ
            |    ПланОбмена.МиграцияПриложений КАК МиграцияПриложений
            |ГДЕ
            |    НЕ МиграцияПриложений.ЭтотУзел
            |    И МиграцияПриложений.ОбластьДанныхОсновныеДанные = &ОбластьДанных";
        КонецЕсли;
        Выборка = Запрос.Выполнить().Выбрать();
        Пока Выборка.Следующий() Цикл
            Источник.ОбменДанными.Получатели.Добавить(Выборка.Ссылка);
        КонецЦикла;

и в Выборка.Ссылка у него "Резервное копирование (дополнительный узел)"

Не знаю причем тут это... ибо ни разу конкретно в такой простой задачи не сталкивался с такими ошибками
5 AlexeyKh
 
07.11.23
16:35
откройте модуль вашего регитсра
в нем процедура ПередЗаписью() - в ней косяк
или проверяйте подписки на это событие.
6 nodrama
 
07.11.23
16:38
(5) Модуль регистра, пустой, я его только создал.
    Формы записи нету
    Форма Списка есть, но модуль в нем пустой.
7 KJlag
 
07.11.23
16:40
(6) остановка по ошибке и смотреть, что он пытается запихнуть в регистр в данной записи??
8 nodrama
 
07.11.23
16:44
(7) ну все измерения и ресурсы верные
а отладкой я прогнал до момента ошибки, выше текст он открывает зачем-то (ну или так надо хз) общий модуль. миграцияПриложений. и там после запроса он получает вот это, после этого сразу вываливается ошибка. А причем тут вообще миграцияПриложений и резервное копирование я не могу понять


Источник.ОбменДанными.Получатели.Добавить(Выборка.Ссылка);
  
и в Выборка.Ссылка у него "Резервное копирование (дополнительный узел)"


я сделал проверку в этом модуле. МиграцияПриложений, что если Источник этот регистр то пропускать код в нем. ну в расширении. и все сразу же записалось норм
9 Лирик
 
07.11.23
16:44
НаборЗаписей.Артикул = Артикул; - Не верно
НоваяЗапись.Артикул = Артикул; - верно
10 KJlag
 
07.11.23
16:50
(8) он кажись нашел узел какойто и решил туда зарегистрировать твою запись на обмен
но в составе нет твоего регистра (что логично - он новый)
https://its.1c.ru/db/intgr83#content:122:hdoc
11 nodrama
 
07.11.23
16:53
(9) Все верно. это код от СоздатьМенеджерЗаписей а не НаборЗаписей..

НЗапись = НаборЗаписей.Добавить
НЗапись.Артикул = Арикул
12 nodrama
 
07.11.23
16:54
(10) Так у нас нет ни каких узлов обмена.
Только 1 с интернет сайтом (ну типовая выгрузка ОбменССайтами).

Меня то и смутило. что другие регистры не знаю, другие обработки работают исправно. А тут новый чистый и какие то узлы обмена не понятные.
13 KJlag
 
07.11.23
17:00
(12) а что в предприятии в ПланОбмена.МиграцияПриложений ?
14 nodrama
 
07.11.23
17:06
(13) Одна строка

Резервное копирование (дополнительный узел)

Откуда он был ли он и когда появился не смотрел.

Но другие регистры (типовые и нет) не имеют таких проблем в данный момент.
15 Жан Пердежон
 
08.11.23
15:23
У тебя в обработчике события ошибка возникает.
Скорее всего где-нибудь в подписке.
Если остановка по ошибке не отрабатывает - по F11 пройдись в отладке с момента записи
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой