|
КД 2.0. ПКС для поля составного типа. | ☑ | ||
---|---|---|---|---|
0
poisk87
24.05.20
✎
16:02
|
Доброго времени суток.
Подскажите, пожалуйста, уважаемые, ответ на вопрос. Есть РН ПокупкиНоменклатуры, в нем есть поле Документ составного типа, правила конвертации для регистра 1 в 1, кроме этого поля. В файл выгрузки поле не попадает совсем ни в каком виде, при включенной и отключенной галочке "Не выгружать объекты свойств по ссылкам", разве там ссылка <"Объект не найден"> не должна выгружаться, даже при отсутствующем документе в базе приемника? Получается что надо для каждого создавать свое правило конвертации объекта?? |
|||
1
poisk87
24.05.20
✎
16:10
|
если указать пко(по произвольному алгоритму), то происходит вылет на тех документах, в которых реквизит "документ" равен регистратору.
|
|||
2
poisk87
24.05.20
✎
16:15
|
Текст ошибки
Ошибка записи объекта ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Ошибка при попытке вставки записи с неуникальным значением ссылки. Microsoft SQL Server Native Client 11.0: Нарушено "PK___Documen__AC8ED0C4CF2848B9" ограничения PRIMARY KEY. Не удается вставить повторяющийся ключ в объект "dbo._Document24". Повторяющееся значение ключа: (0x94250cc47a514d5b11e9941483a126b3). HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2627, line=1 |
|||
3
vicof
24.05.20
✎
19:55
|
У тебя уже есть документы с такими внутренними идентификаторами, вот SQL Server и ругается. И даже пишет тебе об этом.
Как починить? Смотреть правила и что с их помощью они выгружается. Для составных типов хорошо бы указывать правило, по которому каждый тип будет выгружаться. |
|||
4
Сияющий Асинхраль
24.05.20
✎
20:00
|
Ну КД ведь не знает точный тип, по которому надо выгружать, вот она в ступоре и не выгружает вовсе. По хорошему перед выгрузкой ты сам должен анализировать тип объекта, и в зависимости от типа назначать точное имя ПКО, что-то типа того:
Если ТипЗнч(ОбъектКоллекции.Субконто) = Тип("СправочникСсылка.Контрагенты") Тогда ИмяПКО = "Контрагенты"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("СправочникСсылка.Склады") Тогда ИмяПКО = "Склады"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("СправочникСсылка.БанковскиеСчета") Тогда ИмяПКО = "БанковскиеСчета"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("СправочникСсылка.ФизическиеЛица") Тогда ИмяПКО = "ФизическиеЛица"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("СправочникСсылка.ВидыНоменклатуры") Тогда ИмяПКО = "ВидыНоменклатуры"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("СправочникСсылка.СтатьиЗатрат") Тогда ИмяПКО = "СтатьиЗатрат"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("СправочникСсылка.СтатьиДвиженияДенежныхСредств") Тогда ИмяПКО = "СтатьиДвиженияДенежныхСредств"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("СправочникСсылка.НоменклатурныеГруппы") Тогда ИмяПКО = "НоменклатурныеГруппы"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("СправочникСсылка.Номенклатура") Тогда ИмяПКО = "Номенклатура"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда ИмяПКО = "ДоговорыКонтрагентов"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("СправочникСсылка.ВидыНалоговИПлатежейВБюджет") Тогда ИмяПКО = "ВидыНалоговИПлатежейВБюджет"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("СправочникСсылка.ПрочиеДоходыИРасходы") Тогда ИмяПКО = "ПрочиеДоходыИРасходы"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда ИмяПКО = "РеализацияТоваровУслуг"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда ИмяПКО = "ПоступлениеТоваровУслуг"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("ДокументСсылка.СчетФактураВыданный") Тогда ИмяПКО = "СчетФактураВыданный"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("ДокументСсылка.ВозвратТоваровОтПокупателя") Тогда ИмяПКО = "ВозвратТоваровОтПокупателя"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("ДокументСсылка.ПриходныйКассовыйОрдер") Тогда ИмяПКО = "ПриходныйКассовыйОрдер"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда ИмяПКО = "РасходныйКассовыйОрдер"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("ДокументСсылка.ПоступлениеНаРасчетныйСчет") Тогда ИмяПКО = "ПоступлениеНаРасчетныйСчет"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("ДокументСсылка.СписаниеСРасчетногоСчета") Тогда ИмяПКО = "СписаниеСРасчетногоСчета"; ИначеЕсли ТипЗнч(ОбъектКоллекции.Субконто) = Тип("ДокументСсылка.КорректировкаРеализации") Тогда ИмяПКО = "КорректировкаРеализации"; Иначе Отказ = Истина; КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |