Ошибка при вызове метода контекста найтипотипу

0

4uvak

23.10.12

08:55

Здравствуйте подскажите пожалуйста, в стандартных правилах изменяю ПВД на документ «РеализацияТоваровИУслуг» убираю в объект выборки, ставлю произвольный алгоритм в способе выборке, пишу код на выборку для записи в один документ из многих. Далее пытаюсь выгрузить данные по данному правилу но обработка выдает ошибку.

Ошибка при вызове метода контекста (НайтиПоТипу): Несоответствие типов (параметр номер ‘1’)

Проверяя в конфигураторе что не понравилось, обнаружил что проблема как раз в том что не указал в ПВД объект выборки. Кто сталкивался подскажите как с этим боролись

4

Redkiy

23.10.12

08:59

Что передаешь в ПКО?

Давай кусок кода.

5

4uvak

23.10.12

09:02

Запрос = Новый Запрос;

Запрос.текст = «ВЫБРАТЬ

              |    РеализацияТоваровУслугТовары.АкцизВидОперацииРеализации,

              |    РеализацияТоваровУслугТовары.ЕдиницаИзмерения,

              |    РеализацияТоваровУслугТовары.Количество,

              |    РеализацияТоваровУслугТовары.Коэффициент,

              |    РеализацияТоваровУслугТовары.НДСВидОперацииРеализации,

              |    РеализацияТоваровУслугТовары.Номенклатура,

              |    РеализацияТоваровУслугТовары.СтавкаАкциза,

              |    РеализацияТоваровУслугТовары.СтавкаНДС,

              |    РеализацияТоваровУслугТовары.Сумма,

              |    РеализацияТоваровУслугТовары.СуммаАкциза,

              |    РеализацияТоваровУслугТовары.СуммаНДС,

              |    РеализацияТоваровУслугТовары.Цена

              |ИЗ

              |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

              |ГДЕ

              |    РеализацияТоваровУслугТовары.Ссылка.НаличиеДокументов = ЛОЖЬ»;

Выборка = запрос.Выполнить().Выбрать();

ТаблицаДанные = Новый ТаблицаЗначений;

ТаблицаДанные.Колонки.Добавить(«Организация», Новый ОписаниеТипов(«СправочникСсылка.Организации»));

ТаблицаДанные.Колонки.Добавить(«ВидОперации», Новый ОписаниеТипов(«ПеречислениеСсылка.ВидыОперацийРеализацияТоваров»));

ТаблицаДанные.Колонки.Добавить(«БанковскийСчетОрганизации», Новый ОписаниеТипов(«СправочникСсылка.БанковскиеСчета»));

ТаблицаДанные.Колонки.Добавить(«ВалютаДокумента», Новый ОписаниеТипов(«СправочникСсылка.Валюты»));

ТаблицаДанные.Колонки.Добавить(«Склад», Новый ОписаниеТипов(«СправочникСсылка.Склады»));

ТаблицаДанные.Колонки.Добавить(«СуммаДокумента», Новый ОписаниеТипов(«Число»));

ТаблицаДанные.Колонки.Добавить(«Товары», Новый ОписаниеТипов(«ТаблицаЗначений»));

                                                                                     
Товары = Новый ТаблицаЗначений();

Товары.Колонки.Добавить(«АкцизВидОперацииРеализации», Новый ОписаниеТипов(«СправочникСсылка.ВидыОперацийОблагаемыхАкцизом»));

Товары.Колонки.Добавить(«ЕдиницаИзмерения», Новый ОписаниеТипов(«СправочникСсылка.КлассификаторЕдиницИзмерения»));

Товары.Колонки.Добавить(«Количество», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«Коэффициент», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«НДСВидОперацииРеализации», Новый ОписаниеТипов(«СправочникСсылка.ВидыРеализации»));

Товары.Колонки.Добавить(«Номенклатура», Новый ОписаниеТипов(«СправочникСсылка.Номенклатура»));

Товары.Колонки.Добавить(«СтавкаАкциза», Новый ОписаниеТипов(«СправочникСсылка.СтавкиАкциза»));

Товары.Колонки.Добавить(«СтавкаНДС», Новый ОписаниеТипов(«СправочникСсылка.СтавкиНДС»));

Товары.Колонки.Добавить(«Сумма», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«СуммаАкциза», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«СуммаНДС», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«Цена», Новый ОписаниеТипов(«Число»));

Пока Выборка.Следующий() Цикл

   СтрокаТоваров = Товары.Добавить();

   СтрокаТоваров.АкцизВидОперацииРеализации = Выборка.АкцизВидОперацииРеализации;

   СтрокаТоваров.ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения;

   СтрокаТоваров.Количество = Выборка.Количество;

   СтрокаТоваров.Коэффициент = Выборка.Коэффициент;

   СтрокаТоваров.НДСВидОперацииРеализации = Выборка.НДСВидОперацииРеализации;

   СтрокаТоваров.Номенклатура = Выборка.Номенклатура;

   СтрокаТоваров.СтавкаАкциза = Выборка.СтавкаАкциза;

   СтрокаТоваров.СтавкаНДС = Выборка.СтавкаНДС;

   СтрокаТоваров.Сумма = Выборка.Сумма;

   СтрокаТоваров.СуммаАкциза = Выборка.СуммаАкциза;

   СтрокаТоваров.СуммаНДС = Выборка.СуммаНДС;

   СтрокаТоваров.Цена = Выборка.Цена;

КонецЦикла;

Организация = Справочники.Организации.НайтиПоКоду(«000000001»);

НоваяСтрокаДанные = ТаблицаДанные.Добавить();

НоваяСтрокаДанные.Организация = Организация;

НоваяСтрокаДанные.СуммаДокумента = Товары.Итог(«Сумма»);

НоваяСтрокаДанные.ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия;

НоваяСтрокаДанные.БанковскийСчетОрганизации = Организация.ОсновнойБанковскийСчет;

НоваяСтрокаДанные.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду(«398»);

НоваяСтрокаДанные.Товары = Товары;

//ВыгрузитьПоПравилу(ИсходящиеДанные,, ,,»ПКО»);

ВыборкаДанных = ТаблицаДанные;

6

4uvak

23.10.12

09:06

(4)Проблема заключается не в коде, а в стандартной обработке ОбменДаннымиXML там в процедуре

ВыполнитьВыгрузкуИзмененныхДанныхДляУзлаОбмена

Есть такой кусочек кода

Для Каждого СтрокаПравилаВыгрузки Из ВременныйМассивПравилВыгрузкиДанных Цикл

           
           МетаданныеПВД = Метаданные.НайтиПоТипу(СтрокаПравилаВыгрузки.ОбъектВыборки);

           МассивВыгружаемыхМетаданных.Добавить(МетаданныеПВД);

           
       КонецЦикла;

Вот тут то и возникает ошибка при поиске Типа объекта выборки.

7

Redkiy

23.10.12

09:10

Судя но коду, ты пытаешься создать один док из всех по условию НаличиеДокументов = ЛОЖЬ.

9

vmv

23.10.12

09:11

Процедура СоздатьКолонкиТаблицы()

ТаблицаДанные = Новый ТаблицаЗначений;

ТаблицаДанные.Колонки.Добавить(«Организация», Новый ОписаниеТипов(«СправочникСсылка.Организации»));

ТаблицаДанные.Колонки.Добавить(«ВидОперации», Новый ОписаниеТипов(«ПеречислениеСсылка.ВидыОперацийРеализацияТоваров»));

ТаблицаДанные.Колонки.Добавить(«БанковскийСчетОрганизации», Новый ОписаниеТипов(«СправочникСсылка.БанковскиеСчета»));

ТаблицаДанные.Колонки.Добавить(«ВалютаДокумента», Новый ОписаниеТипов(«СправочникСсылка.Валюты»));

ТаблицаДанные.Колонки.Добавить(«Склад», Новый ОписаниеТипов(«СправочникСсылка.Склады»));

ТаблицаДанные.Колонки.Добавить(«СуммаДокумента», Новый ОписаниеТипов(«Число»));

ТаблицаДанные.Колонки.Добавить(«Товары», Новый ОписаниеТипов(«ТаблицаЗначений»));

                                                                                     
Товары = Новый ТаблицаЗначений();

Товары.Колонки.Добавить(«АкцизВидОперацииРеализации», Новый ОписаниеТипов(«СправочникСсылка.ВидыОперацийОблагаемыхАкцизом»));

Товары.Колонки.Добавить(«ЕдиницаИзмерения», Новый ОписаниеТипов(«СправочникСсылка.КлассификаторЕдиницИзмерения»));

Товары.Колонки.Добавить(«Количество», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«Коэффициент», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«НДСВидОперацииРеализации», Новый ОписаниеТипов(«СправочникСсылка.ВидыРеализации»));

Товары.Колонки.Добавить(«Номенклатура», Новый ОписаниеТипов(«СправочникСсылка.Номенклатура»));

Товары.Колонки.Добавить(«СтавкаАкциза», Новый ОписаниеТипов(«СправочникСсылка.СтавкиАкциза»));

Товары.Колонки.Добавить(«СтавкаНДС», Новый ОписаниеТипов(«СправочникСсылка.СтавкиНДС»));

Товары.Колонки.Добавить(«Сумма», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«СуммаАкциза», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«СуммаНДС», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«Цена», Новый ОписаниеТипов(«Число»));

КанецПродураков

так зуми для начала, ато код поход на кучу навоза

10

vmv

23.10.12

09:12

(6) поставь условие проверки на вшивость

СтрокаПравилаВыгрузки.ОбъектВыборки

11

4uvak

23.10.12

09:14

(10)Знать бы где Массив уже приходит в процедуру

12

4uvak

23.10.12

09:18

(10)Да к тому же, менять стандартный код обработки не хочется, может кто знает как можно ее обмануть?

13

Redkiy

23.10.12

11:14

Создай новое ПКО РеализацияТоваровИУслуг_.

Начинай с малого — переноси реквизиты постепенно, сначала перенеси только дату, получится — добавляй следующие.

Т.к. ссылку не передаешь в ПКО отключи поиск по GUID, поиск по реквизиту Дата.

А вообще от твоего кода глаза режет…

14

4uvak

23.10.12

11:35

(13)Понимаешь если в правилах выгрузки данных, я выбираю объект выборки «РеализацияТоваровУслуг», то выгрузка проходит, но количество документов остается прежним и поля заполнены лишь те которые указал, если объект выборки из правил выгрузки данных удаляю то ругается на ошибку. А что с кодом?

15

Redkiy

23.10.12

11:47

(14) Ты между строк читаешь? Тебе предложен способ быстро (за пару минут) локализовать ошибку!

по коду: запрос надо бы свернуть, или у тебя номенклатура не повторяется?

Товары = запрос.Выполнить().Выгрузить(); // ТАКОЕ ПРОХОДИЛИ?

Здравствуйте подскажите пожалуйста, в стандартных правилах изменяю ПВД на документ «РеализацияТоваровИУслуг» убираю в объект выборки, ставлю произвольный алгоритм в способе выборке, пишу код на выборку для записи в один документ из многих. Далее пытаюсь выгрузить данные по данному правилу но обработка выдает ошибку. Ошибка при вызове метода контекста (НайтиПоТипу): Несоответствие типов (параметр номер ‘1’) Проверяя в конфигураторе что не понравилось, обнаружил что проблема как раз в том что не указал в ПВД объект выборки. Кто сталкивался подскажите как с этим боролись

Что передаешь в ПКО? Давай кусок кода.

Проблема заключается не в коде, а в стандартной обработке ОбменДаннымиXML там в процедуре ВыполнитьВыгрузкуИзмененныхДанныхДляУзлаОбмена Есть такой кусочек кода Для Каждого СтрокаПравилаВыгрузки Из ВременныйМассивПравилВыгрузкиДанных Цикл        КонецЦикла; Вот тут то и возникает ошибка при поиске Типа объекта выборки.

Судя но коду, ты пытаешься создать один док из всех по условию НаличиеДокументов = ЛОЖЬ.

так зуми для начала, ато код поход на кучу навоза

поставь условие проверки на вшивость СтрокаПравилаВыгрузки.ОбъектВыборки

Знать бы где Массив уже приходит в процедуру

Да к тому же, менять стандартный код обработки не хочется, может кто знает как можно ее обмануть?

Создай новое ПКО РеализацияТоваровИУслуг_. Начинай с малого — переноси реквизиты постепенно, сначала перенеси только дату, получится — добавляй следующие. Т.к. ссылку не передаешь в ПКО отключи поиск по GUID, поиск по реквизиту Дата. А вообще от твоего кода глаза режет…

Понимаешь если в правилах выгрузки данных, я выбираю объект выборки «РеализацияТоваровУслуг», то выгрузка проходит, но количество документов остается прежним и поля заполнены лишь те которые указал, если объект выборки из правил выгрузки данных удаляю то ругается на ошибку. А что с кодом?

Ты между строк читаешь? Тебе предложен способ быстро (за пару минут) локализовать ошибку! по коду: запрос надо бы свернуть, или у тебя номенклатура не повторяется?

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

И опять конвертация данных

Я

  

4uvak

23.10.12 — 08:55

Здравствуйте подскажите пожалуйста, в стандартных правилах изменяю ПВД на документ «РеализацияТоваровИУслуг» убираю в объект выборки, ставлю произвольный алгоритм в способе выборке, пишу код на выборку для записи в один документ из многих. Далее пытаюсь выгрузить данные по данному правилу но обработка выдает ошибку.

Ошибка при вызове метода контекста (НайтиПоТипу): Несоответствие типов (параметр номер ‘1’)

Проверяя в конфигураторе что не понравилось, обнаружил что проблема как раз в том что не указал в ПВД объект выборки. Кто сталкивался подскажите как с этим боролись

  

vmv

1 — 23.10.12 — 08:57

я бросил курить

  

Нуф-Нуф

2 — 23.10.12 — 08:57

(1) красава

  

4uvak

3 — 23.10.12 — 08:57

(1)я тоже, не помогло

  

Redkiy

4 — 23.10.12 — 08:59

Что передаешь в ПКО?

Давай кусок кода.

  

4uvak

5 — 23.10.12 — 09:02

Запрос = Новый Запрос;

Запрос.текст = «ВЫБРАТЬ

              |    РеализацияТоваровУслугТовары.АкцизВидОперацииРеализации,

              |    РеализацияТоваровУслугТовары.ЕдиницаИзмерения,

              |    РеализацияТоваровУслугТовары.Количество,

              |    РеализацияТоваровУслугТовары.Коэффициент,

              |    РеализацияТоваровУслугТовары.НДСВидОперацииРеализации,

              |    РеализацияТоваровУслугТовары.Номенклатура,

              |    РеализацияТоваровУслугТовары.СтавкаАкциза,

              |    РеализацияТоваровУслугТовары.СтавкаНДС,

              |    РеализацияТоваровУслугТовары.Сумма,

              |    РеализацияТоваровУслугТовары.СуммаАкциза,

              |    РеализацияТоваровУслугТовары.СуммаНДС,

              |    РеализацияТоваровУслугТовары.Цена

              |ИЗ

              |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

              |ГДЕ

              |    РеализацияТоваровУслугТовары.Ссылка.НаличиеДокументов = ЛОЖЬ»;

Выборка = запрос.Выполнить().Выбрать();

ТаблицаДанные = Новый ТаблицаЗначений;

ТаблицаДанные.Колонки.Добавить(«Организация», Новый ОписаниеТипов(«СправочникСсылка.Организации»));

ТаблицаДанные.Колонки.Добавить(«ВидОперации», Новый ОписаниеТипов(«ПеречислениеСсылка.ВидыОперацийРеализацияТоваров»));

ТаблицаДанные.Колонки.Добавить(«БанковскийСчетОрганизации», Новый ОписаниеТипов(«СправочникСсылка.БанковскиеСчета»));

ТаблицаДанные.Колонки.Добавить(«ВалютаДокумента», Новый ОписаниеТипов(«СправочникСсылка.Валюты»));

ТаблицаДанные.Колонки.Добавить(«Склад», Новый ОписаниеТипов(«СправочникСсылка.Склады»));

ТаблицаДанные.Колонки.Добавить(«СуммаДокумента», Новый ОписаниеТипов(«Число»));

ТаблицаДанные.Колонки.Добавить(«Товары», Новый ОписаниеТипов(«ТаблицаЗначений»));

                                                                                     

Товары = Новый ТаблицаЗначений();

Товары.Колонки.Добавить(«АкцизВидОперацииРеализации», Новый ОписаниеТипов(«СправочникСсылка.ВидыОперацийОблагаемыхАкцизом»));

Товары.Колонки.Добавить(«ЕдиницаИзмерения», Новый ОписаниеТипов(«СправочникСсылка.КлассификаторЕдиницИзмерения»));

Товары.Колонки.Добавить(«Количество», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«Коэффициент», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«НДСВидОперацииРеализации», Новый ОписаниеТипов(«СправочникСсылка.ВидыРеализации»));

Товары.Колонки.Добавить(«Номенклатура», Новый ОписаниеТипов(«СправочникСсылка.Номенклатура»));

Товары.Колонки.Добавить(«СтавкаАкциза», Новый ОписаниеТипов(«СправочникСсылка.СтавкиАкциза»));

Товары.Колонки.Добавить(«СтавкаНДС», Новый ОписаниеТипов(«СправочникСсылка.СтавкиНДС»));

Товары.Колонки.Добавить(«Сумма», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«СуммаАкциза», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«СуммаНДС», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«Цена», Новый ОписаниеТипов(«Число»));

Пока Выборка.Следующий() Цикл

   СтрокаТоваров = Товары.Добавить();

   СтрокаТоваров.АкцизВидОперацииРеализации = Выборка.АкцизВидОперацииРеализации;

   СтрокаТоваров.ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения;

   СтрокаТоваров.Количество = Выборка.Количество;

   СтрокаТоваров.Коэффициент = Выборка.Коэффициент;

   СтрокаТоваров.НДСВидОперацииРеализации = Выборка.НДСВидОперацииРеализации;

   СтрокаТоваров.Номенклатура = Выборка.Номенклатура;

   СтрокаТоваров.СтавкаАкциза = Выборка.СтавкаАкциза;

   СтрокаТоваров.СтавкаНДС = Выборка.СтавкаНДС;

   СтрокаТоваров.Сумма = Выборка.Сумма;

   СтрокаТоваров.СуммаАкциза = Выборка.СуммаАкциза;

   СтрокаТоваров.СуммаНДС = Выборка.СуммаНДС;

   СтрокаТоваров.Цена = Выборка.Цена;

КонецЦикла;

Организация = Справочники.Организации.НайтиПоКоду(«000000001»);

НоваяСтрокаДанные = ТаблицаДанные.Добавить();

НоваяСтрокаДанные.Организация = Организация;

НоваяСтрокаДанные.СуммаДокумента = Товары.Итог(«Сумма»);

НоваяСтрокаДанные.ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия;

НоваяСтрокаДанные.БанковскийСчетОрганизации = Организация.ОсновнойБанковскийСчет;

НоваяСтрокаДанные.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду(«398»);

НоваяСтрокаДанные.Товары = Товары;

//ВыгрузитьПоПравилу(ИсходящиеДанные,, ,,»ПКО»);

ВыборкаДанных = ТаблицаДанные;

  

4uvak

6 — 23.10.12 — 09:06

(4)Проблема заключается не в коде, а в стандартной обработке ОбменДаннымиXML там в процедуре

ВыполнитьВыгрузкуИзмененныхДанныхДляУзлаОбмена

Есть такой кусочек кода

Для Каждого СтрокаПравилаВыгрузки Из ВременныйМассивПравилВыгрузкиДанных Цикл

           

           МетаданныеПВД = Метаданные.НайтиПоТипу(СтрокаПравилаВыгрузки.ОбъектВыборки);

           МассивВыгружаемыхМетаданных.Добавить(МетаданныеПВД);

           

       КонецЦикла;

Вот тут то и возникает ошибка при поиске Типа объекта выборки.

  

Redkiy

7 — 23.10.12 — 09:10

Судя но коду, ты пытаешься создать один док из всех по условию НаличиеДокументов = ЛОЖЬ.

  

4uvak

8 — 23.10.12 — 09:10

(7)Так и есть

  

vmv

9 — 23.10.12 — 09:11

Процедура СоздатьКолонкиТаблицы()

ТаблицаДанные = Новый ТаблицаЗначений;

ТаблицаДанные.Колонки.Добавить(«Организация», Новый ОписаниеТипов(«СправочникСсылка.Организации»));

ТаблицаДанные.Колонки.Добавить(«ВидОперации», Новый ОписаниеТипов(«ПеречислениеСсылка.ВидыОперацийРеализацияТоваров»));

ТаблицаДанные.Колонки.Добавить(«БанковскийСчетОрганизации», Новый ОписаниеТипов(«СправочникСсылка.БанковскиеСчета»));

ТаблицаДанные.Колонки.Добавить(«ВалютаДокумента», Новый ОписаниеТипов(«СправочникСсылка.Валюты»));

ТаблицаДанные.Колонки.Добавить(«Склад», Новый ОписаниеТипов(«СправочникСсылка.Склады»));

ТаблицаДанные.Колонки.Добавить(«СуммаДокумента», Новый ОписаниеТипов(«Число»));

ТаблицаДанные.Колонки.Добавить(«Товары», Новый ОписаниеТипов(«ТаблицаЗначений»));

                                                                                     

Товары = Новый ТаблицаЗначений();

Товары.Колонки.Добавить(«АкцизВидОперацииРеализации», Новый ОписаниеТипов(«СправочникСсылка.ВидыОперацийОблагаемыхАкцизом»));

Товары.Колонки.Добавить(«ЕдиницаИзмерения», Новый ОписаниеТипов(«СправочникСсылка.КлассификаторЕдиницИзмерения»));

Товары.Колонки.Добавить(«Количество», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«Коэффициент», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«НДСВидОперацииРеализации», Новый ОписаниеТипов(«СправочникСсылка.ВидыРеализации»));

Товары.Колонки.Добавить(«Номенклатура», Новый ОписаниеТипов(«СправочникСсылка.Номенклатура»));

Товары.Колонки.Добавить(«СтавкаАкциза», Новый ОписаниеТипов(«СправочникСсылка.СтавкиАкциза»));

Товары.Колонки.Добавить(«СтавкаНДС», Новый ОписаниеТипов(«СправочникСсылка.СтавкиНДС»));

Товары.Колонки.Добавить(«Сумма», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«СуммаАкциза», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«СуммаНДС», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«Цена», Новый ОписаниеТипов(«Число»));

КанецПродураков

так зуми для начала, ато код поход на кучу навоза

  

vmv

10 — 23.10.12 — 09:12

(6) поставь условие проверки на вшивость

СтрокаПравилаВыгрузки.ОбъектВыборки

  

4uvak

11 — 23.10.12 — 09:14

(10)Знать бы где Массив уже приходит в процедуру

  

4uvak

12 — 23.10.12 — 09:18

(10)Да к тому же, менять стандартный код обработки не хочется, может кто знает как можно ее обмануть?

  

Redkiy

13 — 23.10.12 — 11:14

Создай новое ПКО РеализацияТоваровИУслуг_.

Начинай с малого — переноси реквизиты постепенно, сначала перенеси только дату, получится — добавляй следующие.

Т.к. ссылку не передаешь в ПКО отключи поиск по GUID, поиск по реквизиту Дата.

А вообще от твоего кода глаза режет…

  

4uvak

14 — 23.10.12 — 11:35

(13)Понимаешь если в правилах выгрузки данных, я выбираю объект выборки «РеализацияТоваровУслуг», то выгрузка проходит, но количество документов остается прежним и поля заполнены лишь те которые указал, если объект выборки из правил выгрузки данных удаляю то ругается на ошибку. А что с кодом?

  

Redkiy

15 — 23.10.12 — 11:47

(14) Ты между строк читаешь? Тебе предложен способ быстро (за пару минут) локализовать ошибку!

по коду: запрос надо бы свернуть, или у тебя номенклатура не повторяется?

Товары = запрос.Выполнить().Выгрузить(); // ТАКОЕ ПРОХОДИЛИ?

И опять конвертация данных

Я

4uvak

23.10.12 — 08:55

Здравствуйте подскажите пожалуйста, в стандартных правилах изменяю ПВД на документ «РеализацияТоваровИУслуг» убираю в объект выборки, ставлю произвольный алгоритм в способе выборке, пишу код на выборку для записи в один документ из многих. Далее пытаюсь выгрузить данные по данному правилу но обработка выдает ошибку.

Ошибка при вызове метода контекста (НайтиПоТипу): Несоответствие типов (параметр номер ‘1’)

Проверяя в конфигураторе что не понравилось, обнаружил что проблема как раз в том что не указал в ПВД объект выборки. Кто сталкивался подскажите как с этим боролись

vmv

1 — 23.10.12 — 08:57

я бросил курить

Нуф-Нуф

2 — 23.10.12 — 08:57

(1) красава

4uvak

3 — 23.10.12 — 08:57

(1)я тоже, не помогло

Redkiy

4 — 23.10.12 — 08:59

Что передаешь в ПКО?

Давай кусок кода.

4uvak

5 — 23.10.12 — 09:02

Запрос = Новый Запрос;

Запрос.текст = «ВЫБРАТЬ

              |    РеализацияТоваровУслугТовары.АкцизВидОперацииРеализации,

              |    РеализацияТоваровУслугТовары.ЕдиницаИзмерения,

              |    РеализацияТоваровУслугТовары.Количество,

              |    РеализацияТоваровУслугТовары.Коэффициент,

              |    РеализацияТоваровУслугТовары.НДСВидОперацииРеализации,

              |    РеализацияТоваровУслугТовары.Номенклатура,

              |    РеализацияТоваровУслугТовары.СтавкаАкциза,

              |    РеализацияТоваровУслугТовары.СтавкаНДС,

              |    РеализацияТоваровУслугТовары.Сумма,

              |    РеализацияТоваровУслугТовары.СуммаАкциза,

              |    РеализацияТоваровУслугТовары.СуммаНДС,

              |    РеализацияТоваровУслугТовары.Цена

              |ИЗ

              |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

              |ГДЕ

              |    РеализацияТоваровУслугТовары.Ссылка.НаличиеДокументов = ЛОЖЬ»;

Выборка = запрос.Выполнить().Выбрать();

ТаблицаДанные = Новый ТаблицаЗначений;

ТаблицаДанные.Колонки.Добавить(«Организация», Новый ОписаниеТипов(«СправочникСсылка.Организации»));

ТаблицаДанные.Колонки.Добавить(«ВидОперации», Новый ОписаниеТипов(«ПеречислениеСсылка.ВидыОперацийРеализацияТоваров»));

ТаблицаДанные.Колонки.Добавить(«БанковскийСчетОрганизации», Новый ОписаниеТипов(«СправочникСсылка.БанковскиеСчета»));

ТаблицаДанные.Колонки.Добавить(«ВалютаДокумента», Новый ОписаниеТипов(«СправочникСсылка.Валюты»));

ТаблицаДанные.Колонки.Добавить(«Склад», Новый ОписаниеТипов(«СправочникСсылка.Склады»));

ТаблицаДанные.Колонки.Добавить(«СуммаДокумента», Новый ОписаниеТипов(«Число»));

ТаблицаДанные.Колонки.Добавить(«Товары», Новый ОписаниеТипов(«ТаблицаЗначений»));

                                                                                     

Товары = Новый ТаблицаЗначений();

Товары.Колонки.Добавить(«АкцизВидОперацииРеализации», Новый ОписаниеТипов(«СправочникСсылка.ВидыОперацийОблагаемыхАкцизом»));

Товары.Колонки.Добавить(«ЕдиницаИзмерения», Новый ОписаниеТипов(«СправочникСсылка.КлассификаторЕдиницИзмерения»));

Товары.Колонки.Добавить(«Количество», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«Коэффициент», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«НДСВидОперацииРеализации», Новый ОписаниеТипов(«СправочникСсылка.ВидыРеализации»));

Товары.Колонки.Добавить(«Номенклатура», Новый ОписаниеТипов(«СправочникСсылка.Номенклатура»));

Товары.Колонки.Добавить(«СтавкаАкциза», Новый ОписаниеТипов(«СправочникСсылка.СтавкиАкциза»));

Товары.Колонки.Добавить(«СтавкаНДС», Новый ОписаниеТипов(«СправочникСсылка.СтавкиНДС»));

Товары.Колонки.Добавить(«Сумма», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«СуммаАкциза», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«СуммаНДС», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«Цена», Новый ОписаниеТипов(«Число»));

Пока Выборка.Следующий() Цикл

   СтрокаТоваров = Товары.Добавить();

   СтрокаТоваров.АкцизВидОперацииРеализации = Выборка.АкцизВидОперацииРеализации;

   СтрокаТоваров.ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения;

   СтрокаТоваров.Количество = Выборка.Количество;

   СтрокаТоваров.Коэффициент = Выборка.Коэффициент;

   СтрокаТоваров.НДСВидОперацииРеализации = Выборка.НДСВидОперацииРеализации;

   СтрокаТоваров.Номенклатура = Выборка.Номенклатура;

   СтрокаТоваров.СтавкаАкциза = Выборка.СтавкаАкциза;

   СтрокаТоваров.СтавкаНДС = Выборка.СтавкаНДС;

   СтрокаТоваров.Сумма = Выборка.Сумма;

   СтрокаТоваров.СуммаАкциза = Выборка.СуммаАкциза;

   СтрокаТоваров.СуммаНДС = Выборка.СуммаНДС;

   СтрокаТоваров.Цена = Выборка.Цена;

КонецЦикла;

Организация = Справочники.Организации.НайтиПоКоду(«000000001»);

НоваяСтрокаДанные = ТаблицаДанные.Добавить();

НоваяСтрокаДанные.Организация = Организация;

НоваяСтрокаДанные.СуммаДокумента = Товары.Итог(«Сумма»);

НоваяСтрокаДанные.ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия;

НоваяСтрокаДанные.БанковскийСчетОрганизации = Организация.ОсновнойБанковскийСчет;

НоваяСтрокаДанные.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду(«398»);

НоваяСтрокаДанные.Товары = Товары;

//ВыгрузитьПоПравилу(ИсходящиеДанные,, ,,»ПКО»);

ВыборкаДанных = ТаблицаДанные;

4uvak

6 — 23.10.12 — 09:06

(4)Проблема заключается не в коде, а в стандартной обработке ОбменДаннымиXML там в процедуре

ВыполнитьВыгрузкуИзмененныхДанныхДляУзлаОбмена

Есть такой кусочек кода

Для Каждого СтрокаПравилаВыгрузки Из ВременныйМассивПравилВыгрузкиДанных Цикл

           

           МетаданныеПВД = Метаданные.НайтиПоТипу(СтрокаПравилаВыгрузки.ОбъектВыборки);

           МассивВыгружаемыхМетаданных.Добавить(МетаданныеПВД);

           

       КонецЦикла;

Вот тут то и возникает ошибка при поиске Типа объекта выборки.

Redkiy

7 — 23.10.12 — 09:10

Судя но коду, ты пытаешься создать один док из всех по условию НаличиеДокументов = ЛОЖЬ.

4uvak

8 — 23.10.12 — 09:10

(7)Так и есть

vmv

9 — 23.10.12 — 09:11

Процедура СоздатьКолонкиТаблицы()

ТаблицаДанные = Новый ТаблицаЗначений;

ТаблицаДанные.Колонки.Добавить(«Организация», Новый ОписаниеТипов(«СправочникСсылка.Организации»));

ТаблицаДанные.Колонки.Добавить(«ВидОперации», Новый ОписаниеТипов(«ПеречислениеСсылка.ВидыОперацийРеализацияТоваров»));

ТаблицаДанные.Колонки.Добавить(«БанковскийСчетОрганизации», Новый ОписаниеТипов(«СправочникСсылка.БанковскиеСчета»));

ТаблицаДанные.Колонки.Добавить(«ВалютаДокумента», Новый ОписаниеТипов(«СправочникСсылка.Валюты»));

ТаблицаДанные.Колонки.Добавить(«Склад», Новый ОписаниеТипов(«СправочникСсылка.Склады»));

ТаблицаДанные.Колонки.Добавить(«СуммаДокумента», Новый ОписаниеТипов(«Число»));

ТаблицаДанные.Колонки.Добавить(«Товары», Новый ОписаниеТипов(«ТаблицаЗначений»));

                                                                                     

Товары = Новый ТаблицаЗначений();

Товары.Колонки.Добавить(«АкцизВидОперацииРеализации», Новый ОписаниеТипов(«СправочникСсылка.ВидыОперацийОблагаемыхАкцизом»));

Товары.Колонки.Добавить(«ЕдиницаИзмерения», Новый ОписаниеТипов(«СправочникСсылка.КлассификаторЕдиницИзмерения»));

Товары.Колонки.Добавить(«Количество», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«Коэффициент», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«НДСВидОперацииРеализации», Новый ОписаниеТипов(«СправочникСсылка.ВидыРеализации»));

Товары.Колонки.Добавить(«Номенклатура», Новый ОписаниеТипов(«СправочникСсылка.Номенклатура»));

Товары.Колонки.Добавить(«СтавкаАкциза», Новый ОписаниеТипов(«СправочникСсылка.СтавкиАкциза»));

Товары.Колонки.Добавить(«СтавкаНДС», Новый ОписаниеТипов(«СправочникСсылка.СтавкиНДС»));

Товары.Колонки.Добавить(«Сумма», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«СуммаАкциза», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«СуммаНДС», Новый ОписаниеТипов(«Число»));

Товары.Колонки.Добавить(«Цена», Новый ОписаниеТипов(«Число»));

КанецПродураков

так зуми для начала, ато код поход на кучу навоза

vmv

10 — 23.10.12 — 09:12

(6) поставь условие проверки на вшивость

СтрокаПравилаВыгрузки.ОбъектВыборки

4uvak

11 — 23.10.12 — 09:14

(10)Знать бы где Массив уже приходит в процедуру

4uvak

12 — 23.10.12 — 09:18

(10)Да к тому же, менять стандартный код обработки не хочется, может кто знает как можно ее обмануть?

Redkiy

13 — 23.10.12 — 11:14

Создай новое ПКО РеализацияТоваровИУслуг_.

Начинай с малого — переноси реквизиты постепенно, сначала перенеси только дату, получится — добавляй следующие.

Т.к. ссылку не передаешь в ПКО отключи поиск по GUID, поиск по реквизиту Дата.

А вообще от твоего кода глаза режет…

4uvak

14 — 23.10.12 — 11:35

(13)Понимаешь если в правилах выгрузки данных, я выбираю объект выборки «РеализацияТоваровУслуг», то выгрузка проходит, но количество документов остается прежним и поля заполнены лишь те которые указал, если объект выборки из правил выгрузки данных удаляю то ругается на ошибку. А что с кодом?

  

Redkiy

15 — 23.10.12 — 11:47

(14) Ты между строк читаешь? Тебе предложен способ быстро (за пару минут) локализовать ошибку!

по коду: запрос надо бы свернуть, или у тебя номенклатура не повторяется?

Товары = запрос.Выполнить().Выгрузить(); // ТАКОЕ ПРОХОДИЛИ?

Здравствуйте подскажите пожалуйста, в стандартных правилах изменяю ПВД на документ «РеализацияТоваровИУслуг» убираю в объект выборки, ставлю произвольный алгоритм в способе выборке, пишу код на выборку для записи в один документ из многих. Далее пытаюсь выгрузить данные по данному правилу но обработка выдает ошибку. Ошибка при вызове метода контекста (НайтиПоТипу): Несоответствие типов (параметр номер ‘1’) Проверяя в конфигураторе что не понравилось, обнаружил что проблема как раз в том что не указал в ПВД объект выборки. Кто сталкивался подскажите как с этим боролись

Что передаешь в ПКО? Давай кусок кода.

Проблема заключается не в коде, а в стандартной обработке ОбменДаннымиXML там в процедуре ВыполнитьВыгрузкуИзмененныхДанныхДляУзлаОбмена Есть такой кусочек кода Для Каждого СтрокаПравилаВыгрузки Из ВременныйМассивПравилВыгрузкиДанных Цикл        КонецЦикла; Вот тут то и возникает ошибка при поиске Типа объекта выборки.

Судя но коду, ты пытаешься создать один док из всех по условию НаличиеДокументов = ЛОЖЬ.

так зуми для начала, ато код поход на кучу навоза

поставь условие проверки на вшивость СтрокаПравилаВыгрузки.ОбъектВыборки

Знать бы где Массив уже приходит в процедуру

Да к тому же, менять стандартный код обработки не хочется, может кто знает как можно ее обмануть?

Создай новое ПКО РеализацияТоваровИУслуг_. Начинай с малого — переноси реквизиты постепенно, сначала перенеси только дату, получится — добавляй следующие. Т.к. ссылку не передаешь в ПКО отключи поиск по GUID, поиск по реквизиту Дата. А вообще от твоего кода глаза режет…

Понимаешь если в правилах выгрузки данных, я выбираю объект выборки «РеализацияТоваровУслуг», то выгрузка проходит, но количество документов остается прежним и поля заполнены лишь те которые указал, если объект выборки из правил выгрузки данных удаляю то ругается на ошибку. А что с кодом?

Ты между строк читаешь? Тебе предложен способ быстро (за пару минут) локализовать ошибку! по коду: запрос надо бы свернуть, или у тебя номенклатура не повторяется?

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Содержание:

1.       Несоответствие типов данных

2.       Ошибка внутри таблицы в запросе

3.       Причина ошибки внутри команды

Приветствую, коллеги! В данной статье рассмотрим понятие и описание типа данных и переменных в системе 1С версии 8.3. Также поговорим о распространенной ошибке «Несоответствие типов», изложим инструкцию с по ее устранению. 


1.    Несоответствие типов данных

Тип – это характеристика у значения, которая определяет поведение и свойства, которые имеет данное значение.

В командах внутри системы 1С параметры имеют некую специальную очерёдность, а также все параметры имеют ссылку на данные, которые связаны с каким-либо типом. В случае, когда какой-то из параметров находится в неположенном месте, либо название не соответствует типу, выполняются невозможные действия для конкретного типа – появляется сообщение, в котором говорится о несоответствии типов данных (показано на скриншоте ниже):

Сообщение об ошибке несоответствии типов

Рис. 1 Сообщение об ошибке несоответствии типов

Чаще всего данная неполадка возникает, когда при написании запроса внутри команды не верно указывают параметры. Исправление подобной ошибки производится при помощи изменения типа передаваемого параметра или используемой переменной на правильный тип данных.  

2.    Ошибка внутри таблицы в запросе

Рассмотрим пример: при чтении цен из номенклатуры согласно регистру данных «Цены номенклатуры» с общего внешнего отчёта всплывает ошибка «Неоднозначное поле «ТипЦен.Номенклатура».

Ошибка Неоднозначное поле

Рис. 2 Ошибка Неоднозначное поле

Видим, что в окне с сообщением о неполадке указано место в коде, где возникла ошибка несоответствия типов: «Параметр номер «1», в строчке вида:

«РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.

Чтобы устранить данную ошибку в первую очередь откроем конфигурацию с данным отчётом и найдем внутри кода с формой строчку, которая была приведена выше:

Исправление ошибки несоответствия типов (Параметр номер 1)

Рис. 3 Исправление ошибки несоответствия типов (Параметр номер 1)

При помощи «Синтаксис-Помощника», в меню конфигурации 1С можно сверить, насколько правильно была написана команда:

Исправление ошибки несоответствия типов

Рис. 4 Проверка написания команды с помощью Синтаксис-Помощника

Согласно описанию, в команде «СрезПоследних» находится два параметра: «Отбор» и «Период».

В случае, когда параметр «Период» не был указан, в данной команде будет пустое поле, а после запятой будет написан параметр для отбора. Для нашего примера этим параметром будет «ТипЦен». После правок команда видоизменится так: «СрезПоследних(,ТипЦен = &ТипЦен).

Исправление команды СрезПоследних

Рис. 5 Исправление команды СрезПоследних

После того как команда СрезПоследних была исправлена, стоит снова сформировать отчёт из «Главное меню → Файл → Открыть». 

3.    Причина ошибки внутри команды

Имеем такую ошибку: когда происходит поиск вариантов ссылок на контрагента в отчёте системы 1С, то возникает ошибка «Несоответствие типов (параметр номер «2»), как на скриншоте ниже:

Несоответствие типов

Рис. 6 Несоответствие типов (параметр номер «2»)

В системе 1С указано то место, где произошла неполадка – это недопустимый параметр номер 2, если кликнуть на кнопку «ERROR». Чтобы её исправить нужно запустить отчёт в конфигураторе системы 1С, далее ищем форму строчки, в которой написана команда «НайтиПоСсылкам», внутри модуля.

Команда НайтиПоСсылкам внутри модуля

Рис. 7 Команда НайтиПоСсылкам внутри модуля

Можно проверить верность того, как написана команда при помощи «Синтаксис-Помощника» в панели меню системы 1С, кнопка будет выделена:

Команда НайтиПоСсылкам

Рис. 8 Команда НайтиПоСсылкам в Синтаксис-Помощнике

По описанию следует: в команде «НайтиПоСсылкам» находится такие четыре параметра: СписокСсылок, ИсключитьОбъекты, ВключитьОбъекты и ОбластьПоиска.

В параметре с названием «ОбластьПоиска» будет тип «массив», в примере указана единица. Параметр «ОбластьПоиска» — не является обязательным, так что команда, которую исправили будет иметь следующий новый вид: НайтиПоСсылкам(МассивПоиска, , , МассивИсключений).

Тип массив в НайтиПоСсылкам

Рис. 9 Тип массив в НайтиПоСсылкам

Далее запускаем наш отчёт в системе 1С.

После наших действий команда работает исправно и ошибки нет.

НайтиПоСсылкам

Рис. 10 Проверка на наличие ошибок в системе конфигурации 1С


В данной статье было рассмотрено как устранить ошибку несоответствия типов в 1С. На примерах была устранена эта ошибка для запроса и для команды. По данному алгоритму можно всегда устранять данную ошибку.

Специалист компании «Кодерлайн»

Айдар Фархутдинов

Ошибка по причине Несоответствие типов в 1С 8.3 связана с передачей параметров в командах и запросах 1С.

Изучив статью, вы:

  • ознакомитесь с порядком исправления ошибки в запросе и командах 1С и узнаете, как исправить;
  • получите два внешних отчета, демонстрирующих ошибочный и правильный коды.

В какой момент выходит ошибка

Как правило, параметры в командах 1С идут в определенной очередности и ссылаются на данные конкретного типа. Ошибка в указании параметра не на том месте или не того типа приводит к появлению сообщения о несоответствии типов:

Исправляется подобная ошибка восстановлением правильной последовательности в строке параметров команды или указанием нужного типа данных Ошибка 1С Несоответствие типов наиболее часто появляется при написании запросов и при некорректном указании параметров команды.

Рассмотрим причины ее возникновения и исправление на конкретном примере.

Ошибка в таблице запроса

При чтении цен номенклатуры по регистру сведений Цены номенклатуры из внешнего отчета появляется ошибка Неоднозначное поле «ТипЦен.Номенклатура».

В окне сообщений уже указано место возникновения ошибки: Несоответствие типов Параметр номер «1» в строке Регистр сведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.

Для исправления ошибки необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы указанную строчку.

Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1 С Предприятие:

Из описания видно, что команда СрезПоследних имеет 2 параметра:

  • Период;
  • Отбор.

Если параметр Период не указывается, место в команде остается пустым, а через запятую указывается параметр отбора, в нашем случае: ТипЦен. Исправленная команда выглядит следующим образом: СрезПоследних(, ТипЦен = &ТипЦен ).

После исправления команды запустите отчет в 1 С Бухгалтерия по кнопке Главное меню — Файл — Открыть:

Теперь отчет формируется правильно!

Исправление ошибки в команде 1С

При поиске ссылок на контрагента в отчете 1С появляется ошибка Несоответствие типов (параметр номер 2):

1С сообщает место ошибки — Параметр номер 2 при нажатии кнопки ERROR.

Для ее исправления необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы строчку с командой НайтиПоСсылкам.

Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:

Из описания идно, что команда НайтиПоСсылкам имеет 4 параметра:

  • СписокСсылок;
  • ОбластьПоиска;
  • ВключитьОбъекты;
  • ИсключитьОбъекты.

Параметр ОбластьПоиска имеет тип «массив», а в нашем примере указано число 1: НайтиПоСсылкам(МассивПоиска, 1, , МассивИсключений)Область поиска — необязательный параметр, поэтому исправленная команда может выглядеть следующим образом: НайтиПоСсылкам(МассивПоиска,  ,  , МассивИсключений).

После исправления команды запустите внешний отчет в 1С по кнопке Главное меню — Файл — Открыть:

Теперь команда поиска ссылок на контрагента отрабатывает правильно.

Вот так можно получить ошибку 1С Несоответствие типов в 1С, поэтому контролируйте правильность указания параметров в запросах и командах 1С в Синтаксис-Помощнике

Обслуживание

Заказать консультацию

По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.

Ошибка Несоответствие типов в 1С 8.3 связана с передачей параметров в командах и запросах 1С.

Изучив статью, вы:

  • ознакомитесь с порядком исправления ошибки в запросе и командах 1С;
  • получите два внешних отчета, демонстрирующих ошибочный и правильный коды.

Содержание

  • Несоответствие типов в 1С 8.3
    • Ошибка в таблице запроса
    • Исправление ошибки в команде 1С

Как правило, параметры в командах 1С идут в определенной очередности и ссылаются на данные конкретного типа. Ошибка в указании параметра не на том месте или не того типа приводит к появлению сообщения о несоответствии типов:

Исправляется подобная ошибка восстановлением правильной последовательности в строке параметров команды или указанием нужного типа данных Ошибка 1С Несоответствие типов наиболее часто появляется при написании запросов и при некорректном указании параметров команды.

Рассмотрим причины ее возникновения и исправление на конкретном примере.

Ошибка в таблице запроса

При чтении цен номенклатуры по регистру сведений Цены номенклатуры из внешнего отчета появляется ошибка Неоднозначное поле «ТипЦен.Номенклатура».

В окне сообщений уже указано место возникновения ошибки: Параметр номер «1» в строке Регистр сведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.

Для исправления ошибки необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы указанную строчку.

Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:

Из описания видно, что команда СрезПоследних имеет 2 параметра:

  • Период;
  • Отбор.

Если параметр Период не указывается, место в команде остается пустым, а через запятую указывается параметр отбора, в нашем случае: ТипЦен. Исправленная команда выглядит следующим образом: СрезПоследних(, ТипЦен = &ТипЦен ).

После исправления команды запустите отчет в 1С по кнопке Главное меню — Файл — Открыть:

Теперь отчет формируется правильно!

Скачать внешний отчет Вывод списка цен номенклатуры

Исправление ошибки в команде 1С

При поиске ссылок на контрагента в отчете 1С появляется ошибка Несоответствие типов (параметр номер 2):

1С сообщает место ошибки — Параметр номер 2 при нажатии кнопки ERROR.

Для ее исправления необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы строчку с командой НайтиПоСсылкам.

Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:

Из описания идно, что команда НайтиПоСсылкам имеет 4 параметра:

  • СписокСсылок;
  • ОбластьПоиска;
  • ВключитьОбъекты;
  • ИсключитьОбъекты.

Параметр ОбластьПоиска имеет тип «массив», а в нашем примере указано число 1: НайтиПоСсылкам(МассивПоиска, 1, , МассивИсключений). Область поиска — необязательный параметр, поэтому исправленная команда может выглядеть следующим образом: НайтиПоСсылкам(МассивПоиска,  ,  , МассивИсключений).

После исправления команды запустите внешний отчет в 1С по кнопке Главное меню — Файл — Открыть:

Теперь команда поиска ссылок на контрагента отрабатывает правильно.

Скачать внешний отчет Поиск ссылок на контрагента

Вот так можно получить ошибку 1С Несоответствие типов в 1С, поэтому контролируйте правильность указания параметров в запросах и командах 1С в Синтаксис-Помощнике!

См. также:

  • Неоднозначное поле в запросе
  • Исправление технических ошибок при работе с 1С:Бухгалтерия: для начинающих и опытных пользователей
  • Метод объекта не обнаружен
  • Неизвестный идентификатор формы
  • Переменная не определена

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы Бухэксперт8, записи поддерживающих эфиров и вы сможете задавать любые вопросы по программе 1С.

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

1) у меня сейчас получается, что данные из самописной выгружаются и в упп загружаются, но файл обмена не чистится и номера сообщения сейчас:
В самописной: номер отправленного 4 номер принятого 0
В УПП: номер отправленного 0 номер принятого 4

То есть после загрузки он не отправляет сообщение, что загрузил их

Макет с пустыми правилами обмена создал. Cценарии синхроинзации данных тоже не помогают.

2) Попытался сделать настройку в УПП через прочий обмен. Выгрузка квитанции происходит, но загрузка не идет по нему. падает на
Ошибка при загрузке данных: {Обработка.ОбменДаннымиXML.МодульОбъекта(5898)}: Ошибка при вызове метода контекста (Свойство): Задано неправильное имя атрибута структуры

        Для Каждого ЭлементПоиска Из  ДанныеПоискаПоТЧ.ПоляПоискаТЧ Цикл

           
            ЗначениеЭлемента = Неопределено;
            СтруктураЧтенияСвойств.Свойство(ЭлементПоиска, ЗначениеЭлемента);

           
            СтруктураПоиска.Вставить(ЭлементПоиска, ЗначениеЭлемента);     

           
        КонецЦикла;

Падает, когда элемент поиска равен “”ИндексСтрокиТаблицы,КоличествоПлан,КоличествоФакт,Номенклатура,НужнаСФ” это колонки табличной части

Почему то Правило.ПоискПоТабличнымЧастям[1].ПоляПоискаТЧ разбивает на две строки в первой Колонка1, а во второй все остальное. Получается это из правил идет?

я добавил попытка исключение конец попытки и обмен прошел, номера сообщения меняются, но регистрация так и остается в самописной то есть файл не очищается .

в сампоиснйо конфе в обработке КонвертацияОбъектовИнформационныхБаз в процедуре ПрочитатьДанныеПоОбмену есть строка

УдалитьРегистрациюИзменений  = одАтрибут(ФайлОбмена, ТипБулево, «УдалитьРегистрациюИзменений»);

Получается в файле из упп должен придти удаление регистрации изменений, но он у нас пустой. в каком месте мне снять регистрацию?

я попробовал в этой процедуре для своего узла удалять регистрацию и вроде все заработало, но не знаю на сколько это правильно

    Если РежимЗагрузкиДанныхВИнформационнуюБазу() Тогда

       
        НачатьТранзакцию();
        НомерПринятого = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЧтениеСообщения.Отправитель, «НомерПринятого»);
        ЗафиксироватьТранзакцию();

       
        Если НомерПринятого >= ЧтениеСообщения.НомерСообщения Тогда // Номер сообщения меньше либо равен ранее принятому

           
            ЧтениеСообщенияВременное = ОбщегоНазначенияКлиентСервер.СкопироватьСтруктуру(ЧтениеСообщения);
            ЧтениеСообщенияВременное.СообщениеБылоПринятоРанее = Истина;
            ЧтениеСообщения = Новый ФиксированнаяСтруктура(ЧтениеСообщенияВременное);

           
            ВызватьИсключение НСтр(«ru = ‘Сообщение обмена было принято ранее’»);
        КонецЕсли;

       
        УдалитьРегистрациюИзменений = УдалитьРегистрациюИзменений И Не ВосстановленаРезервнаяКопия;

       
        //++РС
        ЕСли УзелОбменаПолучатель.Код = «ГУ» Тогда
             УдалитьРегистрациюИзменений=Истина;
        КонецЕсли;
        //—

02.07.2018, 11:35

#1

Марочка98 вне форума


Гость форума


Здравствуйте, помогите пожалуйста с проблемой.
У меня внешняя обработка, загрузка xml файла в дерево значений, и выдает ошибку {Обработка.Обработка1.Форма .Форма.Форма(37)}: Ошибка при вызове метода контекста (УстановитьСтроку)
Чтение.УстановитьСтроку(Те кстXML);
по причине:
Несоответствие типов (параметр номер ‘1’)
Что нужно сделать?? Я начинающий программист в 1с, и поэтому не очень сильна в этом.

Вот полностью мой код модуля.

&НаКлиенте
Процедура Файл(Команда)
Диалог = Новый ДиалогВыбораФайла(РежимДи� �логаВыбораФайла.Открытие);
Диалог.Заголовок = «Выбор документа»;
Диалог.Фильтр = «Документы XML (*.xml, *.xdr, *.xsd, *.xsl)|*.xml;*.xdr;*.xsd;*.xsl|Все файлы|*.*|»;
Если Диалог.Выбрать() Тогда
ТекстXML.Прочитать(Диалог.По лноеИмяФайла);
Документ = ТекстXML.ПолучитьТекст();
Заголовок = «Просмотр XML-документа: » + Диалог.ПолноеИмяФайла;

КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура КнИмпорт(Команда)
Если НЕ ПустаяСтрока(ТекстXML) Тогда
Дерево = Импорт1();

Если Объект.Дерево.Строки.Колич� �ство() > 0 Тогда
ЭлементДерево = ТекстXML.Объект.Дерево;
ЭлементДерево.СоздатьКоло� �ки();
ЭлементДерево.Колонки.Удал ить(ЭлементДерево.Колонки[«Атрибуты»]);

КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция Импорт1() Экспорт
Чтение = Новый ЧтениеXML();
Чтение.УстановитьСтроку(Те кстXML);
ДеревоЗначений = Новый ДеревоЗначений();

ДеревоЗначений.Колонки.Доб авить(«Элемент»);
ДеревоЗначений.Колонки.Доб авить(«Текст»);
ДеревоЗначений.Колонки.Доб авить(«Атрибуты»);
Корень = ДеревоЗначений.Строки.Доба вить();
Корень.Элемент = Чтение.Имя;
Рекурсия(Корень, Чтение);
Возврат ДеревоЗначений;
КонецФункции
Процедура Рекурсия(СтрокаДерева, Чтение)
Если Чтение.КоличествоАтрибуто� �() > 0 Тогда
АтрибутыСоответствие = Новый Соответствие();
Пока Чтение.ПрочитатьАтрибут() Цикл
АтрибутыСоответствие.Вста� �ить(Чтение.Имя, Чтение.Значение);
КонецЦикла;
СтрокаДерева.Атрибуты = АтрибутыСоответствие;
КонецЕсли;
//Состояние(Чтение.Имя);
Пока Чтение.Прочитать() Цикл
Если Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Прервать;
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
СтрокаДерева.Текст = Чтение.Значение;
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Дочерний = СтрокаДерева.Строки.Добави ть();
Дочерний.Элемент = Чтение.Имя;
Рекурсия(Дочерний, Чтение);
КонецЕсли;
КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура Дерево1ПриАктивизацииСтро� �и(Элемент)
Объект.Атрибуты.Очистить();
Данные = Элемент.ТекущиеДанные;
Если Данные <> Неопределено Тогда
АтрибутыДерева = Данные.Атрибуты;
Если ТипЗнч(АтрибутыДерева) = Тип(«Соответствие») Тогда
Для каждого АтрибутДерева из АтрибутыДерева Цикл
СтрокаТаблицы = Объект.Атрибуты.Добавить();
СтрокаТаблицы.Атрибут = АтрибутДерева.Ключ;
СтрокаТаблицы.ЗначениеАтр� �бута = АтрибутДерева.Значение;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура Дерево1Выбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ОткрытьЗначение(Выбранная� �трока.Текст);
КонецПроцедуры

&НаКлиенте
Процедура АтрибутыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ОткрытьЗначение(Выбранная� �трока.ЗначениеАтрибута);

КонецПроцедуры

Процедура ОчиститьТаблицы() Экспорт
Объект.Дерево.Строки.Очист� �ть();
Объект.Дерево.Колонки.Очис� �ить();
Объект.Атрибуты.Очистить();
КонецПроцедуры


11.07.2018, 05:59

#2

FraerFFSG вне форума


Пришел за помощью


По умолчанию Re: Несоответствие типов (параметр номер ‘1’)

Цитата Сообщение от Марочка98
Посмотреть сообщение

Здравствуйте, помогите пожалуйста с проблемой.
У меня внешняя обработка, загрузка xml файла в дерево значений, и выдает ошибку {Обработка.Обработка1.Форма .Форма.Форма(37)}: Ошибка при вызове метода контекста (УстановитьСтроку)
Чтение.УстановитьСтроку(Те кстXML);
по причине:
Несоответствие типов (параметр номер ‘1’)
Что нужно сделать?? Я начинающий программист в 1с, и поэтому не очень сильна в этом.

Вот полностью мой код модуля.

&НаКлиенте
Процедура Файл(Команда)
Диалог = Новый ДиалогВыбораФайла(РежимДи� �логаВыбораФайла.Открытие);
Диалог.Заголовок = «Выбор документа»;
Диалог.Фильтр = «Документы XML (*.xml, *.xdr, *.xsd, *.xsl)|*.xml;*.xdr;*.xsd;*.xsl|Все файлы|*.*|»;
Если Диалог.Выбрать() Тогда
ТекстXML.Прочитать(Диалог.По лноеИмяФайла);
Документ = ТекстXML.ПолучитьТекст();
Заголовок = «Просмотр XML-документа: » + Диалог.ПолноеИмяФайла;

КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура КнИмпорт(Команда)
Если НЕ ПустаяСтрока(ТекстXML) Тогда
Дерево = Импорт1();

Если Объект.Дерево.Строки.Колич� �ство() > 0 Тогда
ЭлементДерево = ТекстXML.Объект.Дерево;
ЭлементДерево.СоздатьКоло� �ки();
ЭлементДерево.Колонки.Удал ить(ЭлементДерево.Колонки[«Атрибуты»]);

КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция Импорт1() Экспорт
Чтение = Новый ЧтениеXML();
Чтение.УстановитьСтроку(Те кстXML);
ДеревоЗначений = Новый ДеревоЗначений();

ДеревоЗначений.Колонки.Доб авить(«Элемент»);
ДеревоЗначений.Колонки.Доб авить(«Текст»);
ДеревоЗначений.Колонки.Доб авить(«Атрибуты»);
Корень = ДеревоЗначений.Строки.Доба вить();
Корень.Элемент = Чтение.Имя;
Рекурсия(Корень, Чтение);
Возврат ДеревоЗначений;
КонецФункции
Процедура Рекурсия(СтрокаДерева, Чтение)
Если Чтение.КоличествоАтрибуто� �() > 0 Тогда
АтрибутыСоответствие = Новый Соответствие();
Пока Чтение.ПрочитатьАтрибут() Цикл
АтрибутыСоответствие.Вста� �ить(Чтение.Имя, Чтение.Значение);
КонецЦикла;
СтрокаДерева.Атрибуты = АтрибутыСоответствие;
КонецЕсли;
//Состояние(Чтение.Имя);
Пока Чтение.Прочитать() Цикл
Если Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Прервать;
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
СтрокаДерева.Текст = Чтение.Значение;
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Дочерний = СтрокаДерева.Строки.Добави ть();
Дочерний.Элемент = Чтение.Имя;
Рекурсия(Дочерний, Чтение);
КонецЕсли;
КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура Дерево1ПриАктивизацииСтро� �и(Элемент)
Объект.Атрибуты.Очистить();
Данные = Элемент.ТекущиеДанные;
Если Данные <> Неопределено Тогда
АтрибутыДерева = Данные.Атрибуты;
Если ТипЗнч(АтрибутыДерева) = Тип(«Соответствие») Тогда
Для каждого АтрибутДерева из АтрибутыДерева Цикл
СтрокаТаблицы = Объект.Атрибуты.Добавить();
СтрокаТаблицы.Атрибут = АтрибутДерева.Ключ;
СтрокаТаблицы.ЗначениеАтр� �бута = АтрибутДерева.Значение;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура Дерево1Выбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ОткрытьЗначение(Выбранная� �трока.Текст);
КонецПроцедуры

&НаКлиенте
Процедура АтрибутыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ОткрытьЗначение(Выбранная� �трока.ЗначениеАтрибута);

КонецПроцедуры

Процедура ОчиститьТаблицы() Экспорт
Объект.Дерево.Строки.Очист� �ть();
Объект.Дерево.Колонки.Очис� �ить();
Объект.Атрибуты.Очистить();
КонецПроцедуры

Поставить бряку на
Чтение.УстановитьСтроку(Те кстXML);

И посмотреть Shift+F9 выделив Те кстXML — Что же скрывается под этой переменной.


Добрый день, коллеги! Воюю с Конвертацией. Правила обмена для идентичных Комплексных автоматизаций.
Необходимо, чтобы из одной в другую  автоматом грузились определенные типы документов только за сегодняшний день.

Меняю правила выгрузки (пробую на заказах Поставщику и Покупателю).

Вариант 1.
Объект выборки —  ДокументСсылка.ЗаказПоставщику
Способ выборки — Произвольный алгоритм
Правило конвертации  — ЗаказПоставщику

В обработчике «Перед обработкой»:
Запрос = Новый Запрос;
Запрос.УстановитьПараметр(«ТекущаяДата», День(ТекущаяДата()));
Запрос.Текст = «ВЫБРАТЬ
|   ЗаказПоставщику.Ссылка
|ИЗ
|   Документ.ЗаказПоставщику КАК ЗаказПоставщику
|ГДЕ
|   ДЕНЬ(ЗаказПоставщику.Дата) = &ТекущаяДата»;

РезультатЗапроса = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);

Для Каждого Строка Из РезультатЗапроса.Строки Цикл
  ВыгрузитьПоПравилу(Строка.Ссылка, , , , «ЗаказПоставщику»);
КонецЦикла;

Итог: Отбора не происходит, выгружаются все документы, а не только за сегодня.

Вариант 2:

Объект выборки —  (оставила пустым)
Способ выборки — Произвольный алгоритм
Правило конвертации  — ЗаказПоставщику

В обработчике «Перед обработкой»:
Запрос = Новый Запрос;
Запрос.УстановитьПараметр(«ТекущаяДата», День(ТекущаяДата()));
Запрос.Текст = «ВЫБРАТЬ
|   ЗаказПоставщику.Ссылка
|ИЗ
|   Документ.ЗаказПоставщику КАК ЗаказПоставщику
|ГДЕ
|   ДЕНЬ(ЗаказПоставщику.Дата) = &ТекущаяДата»;

РезультатЗапроса = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);

Для Каждого Строка Из РезультатЗапроса.Строки Цикл
  ВыгрузитьПоПравилу(Строка.Ссылка, , , , «ЗаказПоставщику»);
КонецЦикла;

Итог: все падает с ошибкой
Ошибка при выгрузке данных для узла плана обмена
   ОписаниеОшибки         =  Ошибка при вызове метода контекста (НайтиПоТипу): Несоответствие типов (параметр номер ‘1’)
   ПозицияМодуля          =  Обработка.ОбменДаннымиXML.МодульОбъекта(12187)
   КодСообщения           =  72
   УзелПланаОбмена        =  Комплексная автоматизация 1.1
Ошибка при загрузке объектов. Было загружено: 0
Произошла ошибка при выгрузке объектов. Было выгружено: 0

Заранее спасибо

Ошибка Несоответствие типов в 1С 8.3 связана с передачей параметров в командах и запросах 1С.

Изучив статью, вы:

  • ознакомитесь с порядком исправления ошибки в запросе и командах 1С;
  • получите два внешних отчета, демонстрирующих ошибочный и правильный коды.

Содержание

  • Несоответствие типов в 1С 8.3
    • Ошибка в таблице запроса
    • Исправление ошибки в команде 1С

Как правило, параметры в командах 1С идут в определенной очередности и ссылаются на данные конкретного типа. Ошибка в указании параметра не на том месте или не того типа приводит к появлению сообщения о несоответствии типов:

Исправляется подобная ошибка восстановлением правильной последовательности в строке параметров команды или указанием нужного типа данных Ошибка 1С Несоответствие типов наиболее часто появляется при написании запросов и при некорректном указании параметров команды.

Рассмотрим причины ее возникновения и исправление на конкретном примере.

Ошибка в таблице запроса

При чтении цен номенклатуры по регистру сведений Цены номенклатуры из внешнего отчета появляется ошибка Неоднозначное поле «ТипЦен.Номенклатура».

В окне сообщений уже указано место возникновения ошибки: Параметр номер «1» в строке Регистр сведений.ЦеныНоменклатуры.СрезПоследних(&&ТипЦен,) КАК ЦеныНоменклатурыСрезПоследних.

Для исправления ошибки необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы указанную строчку.

Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:

Из описания видно, что команда СрезПоследних имеет 2 параметра:

  • Период;
  • Отбор.

Если параметр Период не указывается, место в команде остается пустым, а через запятую указывается параметр отбора, в нашем случае: ТипЦен. Исправленная команда выглядит следующим образом: СрезПоследних(, ТипЦен = &ТипЦен ).

После исправления команды запустите отчет в 1С по кнопке Главное меню — Файл — Открыть:

Теперь отчет формируется правильно!

Скачать внешний отчет Вывод списка цен номенклатуры

Исправление ошибки в команде 1С

При поиске ссылок на контрагента в отчете 1С появляется ошибка Несоответствие типов (параметр номер 2):

1С сообщает место ошибки — Параметр номер 2 при нажатии кнопки ERROR.

Для ее исправления необходимо открыть отчет в Конфигураторе 1С и найти в модуле формы строчку с командой НайтиПоСсылкам.

Правильность написания команды проверьте по выделенной кнопке Синтаксис-Помощник в меню 1С:

Из описания идно, что команда НайтиПоСсылкам имеет 4 параметра:

  • СписокСсылок;
  • ОбластьПоиска;
  • ВключитьОбъекты;
  • ИсключитьОбъекты.

Параметр ОбластьПоиска имеет тип «массив», а в нашем примере указано число 1: НайтиПоСсылкам(МассивПоиска, 1, , МассивИсключений). Область поиска — необязательный параметр, поэтому исправленная команда может выглядеть следующим образом: НайтиПоСсылкам(МассивПоиска,  ,  , МассивИсключений).

После исправления команды запустите внешний отчет в 1С по кнопке Главное меню — Файл — Открыть:

Теперь команда поиска ссылок на контрагента отрабатывает правильно.

Скачать внешний отчет Поиск ссылок на контрагента

Вот так можно получить ошибку 1С Несоответствие типов в 1С, поэтому контролируйте правильность указания параметров в запросах и командах 1С в Синтаксис-Помощнике!

См. также:

  • Неоднозначное поле в запросе
  • Исправление технических ошибок при работе с 1С:Бухгалтерия: для начинающих и опытных пользователей
  • Метод объекта не обнаружен
  • Неизвестный идентификатор формы
  • Переменная не определена

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы Бухэксперт8, записи поддерживающих эфиров и вы сможете задавать любые вопросы по программе 1С.

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Добрый день, коллеги! Воюю с Конвертацией. Правила обмена для идентичных Комплексных автоматизаций.
Необходимо, чтобы из одной в другую  автоматом грузились определенные типы документов только за сегодняшний день.

Меняю правила выгрузки (пробую на заказах Поставщику и Покупателю).

Вариант 1.
Объект выборки —  ДокументСсылка.ЗаказПоставщику
Способ выборки — Произвольный алгоритм
Правило конвертации  — ЗаказПоставщику

В обработчике «Перед обработкой»:
Запрос = Новый Запрос;
Запрос.УстановитьПараметр(«ТекущаяДата», День(ТекущаяДата()));
Запрос.Текст = «ВЫБРАТЬ
|   ЗаказПоставщику.Ссылка
|ИЗ
|   Документ.ЗаказПоставщику КАК ЗаказПоставщику
|ГДЕ
|   ДЕНЬ(ЗаказПоставщику.Дата) = &ТекущаяДата»;

РезультатЗапроса = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);

Для Каждого Строка Из РезультатЗапроса.Строки Цикл
  ВыгрузитьПоПравилу(Строка.Ссылка, , , , «ЗаказПоставщику»);
КонецЦикла;

Итог: Отбора не происходит, выгружаются все документы, а не только за сегодня.

Вариант 2:

Объект выборки —  (оставила пустым)
Способ выборки — Произвольный алгоритм
Правило конвертации  — ЗаказПоставщику

В обработчике «Перед обработкой»:
Запрос = Новый Запрос;
Запрос.УстановитьПараметр(«ТекущаяДата», День(ТекущаяДата()));
Запрос.Текст = «ВЫБРАТЬ
|   ЗаказПоставщику.Ссылка
|ИЗ
|   Документ.ЗаказПоставщику КАК ЗаказПоставщику
|ГДЕ
|   ДЕНЬ(ЗаказПоставщику.Дата) = &ТекущаяДата»;

РезультатЗапроса = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);

Для Каждого Строка Из РезультатЗапроса.Строки Цикл
  ВыгрузитьПоПравилу(Строка.Ссылка, , , , «ЗаказПоставщику»);
КонецЦикла;

Итог: все падает с ошибкой
Ошибка при выгрузке данных для узла плана обмена
   ОписаниеОшибки         =  Ошибка при вызове метода контекста (НайтиПоТипу): Несоответствие типов (параметр номер ‘1’)
   ПозицияМодуля          =  Обработка.ОбменДаннымиXML.МодульОбъекта(12187)
   КодСообщения           =  72
   УзелПланаОбмена        =  Комплексная автоматизация 1.1
Ошибка при загрузке объектов. Было загружено: 0
Произошла ошибка при выгрузке объектов. Было выгружено: 0

Заранее спасибо

1) у меня сейчас получается, что данные из самописной выгружаются и в упп загружаются, но файл обмена не чистится и номера сообщения сейчас:
В самописной: номер отправленного 4 номер принятого 0
В УПП: номер отправленного 0 номер принятого 4

То есть после загрузки он не отправляет сообщение, что загрузил их

Макет с пустыми правилами обмена создал. Cценарии синхроинзации данных тоже не помогают.

2) Попытался сделать настройку в УПП через прочий обмен. Выгрузка квитанции происходит, но загрузка не идет по нему. падает на
Ошибка при загрузке данных: {Обработка.ОбменДаннымиXML.МодульОбъекта(5898)}: Ошибка при вызове метода контекста (Свойство): Задано неправильное имя атрибута структуры

        Для Каждого ЭлементПоиска Из  ДанныеПоискаПоТЧ.ПоляПоискаТЧ Цикл

           
            ЗначениеЭлемента = Неопределено;
            СтруктураЧтенияСвойств.Свойство(ЭлементПоиска, ЗначениеЭлемента);

           
            СтруктураПоиска.Вставить(ЭлементПоиска, ЗначениеЭлемента);     

           
        КонецЦикла;

Падает, когда элемент поиска равен “”ИндексСтрокиТаблицы,КоличествоПлан,КоличествоФакт,Номенклатура,НужнаСФ” это колонки табличной части

Почему то Правило.ПоискПоТабличнымЧастям[1].ПоляПоискаТЧ разбивает на две строки в первой Колонка1, а во второй все остальное. Получается это из правил идет?

я добавил попытка исключение конец попытки и обмен прошел, номера сообщения меняются, но регистрация так и остается в самописной то есть файл не очищается .

в сампоиснйо конфе в обработке КонвертацияОбъектовИнформационныхБаз в процедуре ПрочитатьДанныеПоОбмену есть строка

УдалитьРегистрациюИзменений  = одАтрибут(ФайлОбмена, ТипБулево, «УдалитьРегистрациюИзменений»);

Получается в файле из упп должен придти удаление регистрации изменений, но он у нас пустой. в каком месте мне снять регистрацию?

я попробовал в этой процедуре для своего узла удалять регистрацию и вроде все заработало, но не знаю на сколько это правильно

    Если РежимЗагрузкиДанныхВИнформационнуюБазу() Тогда

       
        НачатьТранзакцию();
        НомерПринятого = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЧтениеСообщения.Отправитель, «НомерПринятого»);
        ЗафиксироватьТранзакцию();

       
        Если НомерПринятого >= ЧтениеСообщения.НомерСообщения Тогда // Номер сообщения меньше либо равен ранее принятому

           
            ЧтениеСообщенияВременное = ОбщегоНазначенияКлиентСервер.СкопироватьСтруктуру(ЧтениеСообщения);
            ЧтениеСообщенияВременное.СообщениеБылоПринятоРанее = Истина;
            ЧтениеСообщения = Новый ФиксированнаяСтруктура(ЧтениеСообщенияВременное);

           
            ВызватьИсключение НСтр(«ru = ‘Сообщение обмена было принято ранее'»);
        КонецЕсли;

       
        УдалитьРегистрациюИзменений = УдалитьРегистрациюИзменений И Не ВосстановленаРезервнаяКопия;

       
        //++РС
        ЕСли УзелОбменаПолучатель.Код = «ГУ» Тогда
             УдалитьРегистрациюИзменений=Истина;
        КонецЕсли;
        //—

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста найтипокоду 1с
  • Ошибка при вызове метода контекста найти поле
  • Ошибка при вызове метода контекста инициализировать хранилище ключа
  • Ошибка при вызове метода контекста значениеизфайла
  • Ошибка при вызове метода контекста значениеизстрокивнутр ошибка преобразования