Имя: Пароль:
1C
1С v8
Неверные значения типов полей
,
0 Vyacheslav_UZ
 
20.08.15
15:46
Доброго времени суток. Столкнулся с такой задачей. Нужно перенести функционал из УТ в УНФ. Партнеры - контрагенты. Начал С того что перекинул сам справочник и все ссылки. Далее Р/С с движениями в регистраторе. Теперь самое интересное Р/Н. Взял первый попавшийся Расчеты с Поставщиками.Изменил тип на новый спр.КлючиУчетаАналитикиПартнеров который в свою очередь устанавливает что это будет организация,контрагент или партнер. Залез в первый легкий документ Приходная накладная. Пытаюсь провести выдает сообщении Неверные значения типов полей : РегистрНакопления.РасчетыСПоставщиками.Контрагент - Контрагент. Я так понял это из за того что я поменял тип Р/Н и при вызове блокировки она не может понять что это т.к раньше это был справочник контрагенты.Собственно вопрос. Что сделать?

Процедура СформироватьТаблицаРасчетыСПоставщиками(ДокументСсылкаПриходнаяНакладная, СтруктураДополнительныеСвойства)
    
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц;
    
    Запрос.УстановитьПараметр("Ссылка", ДокументСсылкаПриходнаяНакладная);
    Запрос.УстановитьПараметр("МоментВремени", Новый Граница(СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени, ВидГраницы.Включая));
    Запрос.УстановитьПараметр("ПериодКонтроля", СтруктураДополнительныеСвойства.ДляПроведения.МоментВремени.Дата);
    Запрос.УстановитьПараметр("Организация", СтруктураДополнительныеСвойства.ДляПроведения.Организация);
    Запрос.УстановитьПараметр("ВозникновениеОбязательствПередПоставщиком", НСтр("ru='Возникновение обязательств перед поставщиком'"));
    Запрос.УстановитьПараметр("ЗачетАванса", НСтр("ru='Зачет предоплаты'"));
    Запрос.УстановитьПараметр("КурсоваяРазница", НСтр("ru='Курсовая разница'"));
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК ВидДвижения,
    |    ТаблицаДокумента.Период КАК Дата,
    |    ТаблицаДокумента.Организация КАК Организация,
    |    &Контрагент КАК Контрагент,
    |    ТаблицаДокумента.ВестиРасчетыПоДокументам КАК ВестиРасчетыПоДокументам,
    |    ТаблицаДокумента.СчетУчетаРасчетовСПоставщиком КАК СчетУчета,
    |    ТаблицаДокумента.Договор КАК Договор,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.ВестиРасчетыПоДокументам
    |            ТОГДА ТаблицаДокумента.Документ
    |        ИНАЧЕ НЕОПРЕДЕЛЕНО
    |    КОНЕЦ КАК Документ,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.Заказ ССЫЛКА Документ.ЗаказПоставщику
    |                И ТаблицаДокумента.Заказ <> ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |                И ТаблицаДокумента.ВестиРасчетыПоЗаказам
    |            ТОГДА ТаблицаДокумента.Заказ
    |        ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |    КОНЕЦ КАК Заказ,
    |    ТаблицаДокумента.ВалютаРасчетов КАК Валюта,
    |    ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Долг) КАК ТипРасчетов,
    |    СУММА(ВЫБОР
    |            КОГДА ТаблицаДокумента.ВключатьРасходыВСебестоимость
    |                ТОГДА ТаблицаДокумента.Сумма + ТаблицаДокумента.СуммаРасходов
    |            ИНАЧЕ ТаблицаДокумента.Сумма
    |        КОНЕЦ) КАК Сумма,
    |    СУММА(ВЫБОР
    |            КОГДА ТаблицаДокумента.ВключатьРасходыВСебестоимость
    |                ТОГДА ТаблицаДокумента.СуммаВал + ТаблицаДокумента.СуммаРасходовВал
    |            ИНАЧЕ ТаблицаДокумента.СуммаВал
    |        КОНЕЦ) КАК СуммаВал,
    |    СУММА(ВЫБОР
    |            КОГДА ТаблицаДокумента.ВключатьРасходыВСебестоимость
    |                ТОГДА ТаблицаДокумента.Сумма + ТаблицаДокумента.СуммаРасходов
    |            ИНАЧЕ ТаблицаДокумента.Сумма
    |        КОНЕЦ) КАК СуммаДляОстатка,
    |    СУММА(ВЫБОР
    |            КОГДА ТаблицаДокумента.ВключатьРасходыВСебестоимость
    |                ТОГДА ТаблицаДокумента.СуммаВал + ТаблицаДокумента.СуммаРасходовВал
    |            ИНАЧЕ ТаблицаДокумента.СуммаВал
    |        КОНЕЦ) КАК СуммаВалДляОстатка,
    |    ВЫРАЗИТЬ(&ВозникновениеОбязательствПередПоставщиком КАК СТРОКА(100)) КАК СодержаниеПроводки
    |ПОМЕСТИТЬ ВременнаяТаблицаРасчетыСПоставщиками
    |ИЗ
    |    ВременнаяТаблицаЗапасы КАК ТаблицаДокумента
    |ГДЕ
    |    ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПриходнаяНакладная.ПоступлениеОтПоставщика)
    |
    |СГРУППИРОВАТЬ ПО
    |    ТаблицаДокумента.Период,
    |    ТаблицаДокумента.Организация,
    |    ТаблицаДокумента.Контрагент,
    |    ТаблицаДокумента.ВестиРасчетыПоДокументам,
    |    ТаблицаДокумента.Договор,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.ВестиРасчетыПоДокументам
    |            ТОГДА ТаблицаДокумента.Документ
    |        ИНАЧЕ НЕОПРЕДЕЛЕНО
    |    КОНЕЦ,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.Заказ ССЫЛКА Документ.ЗаказПоставщику
    |                И ТаблицаДокумента.Заказ <> ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |                И ТаблицаДокумента.ВестиРасчетыПоЗаказам
    |            ТОГДА ТаблицаДокумента.Заказ
    |        ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |    КОНЕЦ,
    |    ТаблицаДокумента.ВалютаРасчетов,
    |    ТаблицаДокумента.СчетУчетаРасчетовСПоставщиком
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход),
    |    ТаблицаДокумента.Период,
    |    ТаблицаДокумента.Организация,
    |    ТаблицаДокумента.Контрагент,
    |    ТаблицаДокумента.ВестиРасчетыПоДокументам,
    |    ТаблицаДокумента.СчетУчетаРасчетовСПоставщиком,
    |    ТаблицаДокумента.Договор,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.ВестиРасчетыПоДокументам
    |            ТОГДА ТаблицаДокумента.Документ
    |        ИНАЧЕ НЕОПРЕДЕЛЕНО
    |    КОНЕЦ,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.ВестиРасчетыПоЗаказам
    |            ТОГДА ТаблицаДокумента.ЗаказПоставщику
    |        ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |    КОНЕЦ,
    |    ТаблицаДокумента.ВалютаРасчетов,
    |    ЗНАЧЕНИЕ(Перечисление.ТипыРасчетов.Долг),
    |    СУММА(ТаблицаДокумента.Сумма),
    |    СУММА(ТаблицаДокумента.СуммаВал),
    |    СУММА(ТаблицаДокумента.Сумма),
    |    СУММА(ТаблицаДокумента.СуммаВал),
    |    ВЫРАЗИТЬ(&ВозникновениеОбязательствПередПоставщиком КАК СТРОКА(100))
    |ИЗ
    |    ВременнаяТаблицаРасходы КАК ТаблицаДокумента
    |ГДЕ
    |    ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПриходнаяНакладная.ПоступлениеОтПоставщика)
    |    И НЕ ТаблицаДокумента.ВключатьРасходыВСебестоимость
    |
    |СГРУППИРОВАТЬ ПО
    |    ТаблицаДокумента.Период,
    |    ТаблицаДокумента.Организация,
    |    ТаблицаДокумента.Контрагент,
    |    ТаблицаДокумента.ВестиРасчетыПоДокументам,
    |    ТаблицаДокумента.Договор,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.ВестиРасчетыПоДокументам
    |            ТОГДА ТаблицаДокумента.Документ
    |        ИНАЧЕ НЕОПРЕДЕЛЕНО
    |    КОНЕЦ,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.ВестиРасчетыПоЗаказам
    |            ТОГДА ТаблицаДокумента.ЗаказПоставщику
    |        ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |    КОНЕЦ,
    |    ТаблицаДокумента.ВалютаРасчетов,
    |    ТаблицаДокумента.СчетУчетаРасчетовСПоставщиком
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход),
    |    ТаблицаДокумента.Период,
    |    ТаблицаДокумента.Организация,
    |    ТаблицаДокумента.Контрагент,
    |    ТаблицаДокумента.ВестиРасчетыПоДокументам,
    |    ТаблицаДокумента.СчетУчетаАвансовПоставщику,
    |    ТаблицаДокумента.Договор,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.ВестиРасчетыПоДокументам
    |            ТОГДА ТаблицаДокумента.Документ
    |        ИНАЧЕ НЕОПРЕДЕЛЕНО
    |    КОНЕЦ,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.Заказ ССЫЛКА Документ.ЗаказПоставщику
    |                И ТаблицаДокумента.Заказ <> ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |                И ТаблицаДокумента.ВестиРасчетыПоЗаказам
    |            ТОГДА ТаблицаДокумента.Заказ
    |        ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |    КОНЕЦ,
    |    ТаблицаДокумента.ВалютаРасчетов,
    |    ТаблицаДокумента.ТипРасчетов,
    |    СУММА(ТаблицаДокумента.Сумма),
    |    СУММА(ТаблицаДокумента.СуммаВал),
    |    СУММА(ТаблицаДокумента.Сумма),
    |    СУММА(ТаблицаДокумента.СуммаВал),
    |    ВЫРАЗИТЬ(&ЗачетАванса КАК СТРОКА(100))
    |ИЗ
    |    ВременнаяТаблицаПредоплата КАК ТаблицаДокумента
    |ГДЕ
    |    ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПриходнаяНакладная.ПоступлениеОтПоставщика)
    |
    |СГРУППИРОВАТЬ ПО
    |    ТаблицаДокумента.Период,
    |    ТаблицаДокумента.Организация,
    |    ТаблицаДокумента.Контрагент,
    |    ТаблицаДокумента.ВестиРасчетыПоДокументам,
    |    ТаблицаДокумента.Договор,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.ВестиРасчетыПоДокументам
    |            ТОГДА ТаблицаДокумента.Документ
    |        ИНАЧЕ НЕОПРЕДЕЛЕНО
    |    КОНЕЦ,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.Заказ ССЫЛКА Документ.ЗаказПоставщику
    |                И ТаблицаДокумента.Заказ <> ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |                И ТаблицаДокумента.ВестиРасчетыПоЗаказам
    |            ТОГДА ТаблицаДокумента.Заказ
    |        ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |    КОНЕЦ,
    |    ТаблицаДокумента.ТипРасчетов,
    |    ТаблицаДокумента.ВалютаРасчетов,
    |    ТаблицаДокумента.СчетУчетаАвансовПоставщику
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход),
    |    ТаблицаДокумента.Период,
    |    ТаблицаДокумента.Организация,
    |    ТаблицаДокумента.Контрагент,
    |    ТаблицаДокумента.ВестиРасчетыПоДокументам,
    |    ТаблицаДокумента.СчетУчетаРасчетовСПоставщиком,
    |    ТаблицаДокумента.Договор,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.ВестиРасчетыПоДокументам
    |            ТОГДА ТаблицаДокумента.ДокументКуда
    |        ИНАЧЕ НЕОПРЕДЕЛЕНО
    |    КОНЕЦ,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.Заказ ССЫЛКА Документ.ЗаказПоставщику
    |                И ТаблицаДокумента.Заказ <> ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |                И ТаблицаДокумента.ВестиРасчетыПоЗаказам
    |            ТОГДА ТаблицаДокумента.Заказ
    |        ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |    КОНЕЦ,
    |    ТаблицаДокумента.ВалютаРасчетов,
    |    ТаблицаДокумента.ТипРасчетовКуда,
    |    СУММА(ТаблицаДокумента.Сумма),
    |    СУММА(ТаблицаДокумента.СуммаВал),
    |    -СУММА(ТаблицаДокумента.Сумма),
    |    -СУММА(ТаблицаДокумента.СуммаВал),
    |    ВЫРАЗИТЬ(&ЗачетАванса КАК СТРОКА(100))
    |ИЗ
    |    ВременнаяТаблицаПредоплата КАК ТаблицаДокумента
    |ГДЕ
    |    ТаблицаДокумента.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПриходнаяНакладная.ПоступлениеОтПоставщика)
    |
    |СГРУППИРОВАТЬ ПО
    |    ТаблицаДокумента.Период,
    |    ТаблицаДокумента.Организация,
    |    ТаблицаДокумента.Контрагент,
    |    ТаблицаДокумента.ВестиРасчетыПоДокументам,
    |    ТаблицаДокумента.Договор,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.ВестиРасчетыПоДокументам
    |            ТОГДА ТаблицаДокумента.ДокументКуда
    |        ИНАЧЕ НЕОПРЕДЕЛЕНО
    |    КОНЕЦ,
    |    ВЫБОР
    |        КОГДА ТаблицаДокумента.Заказ ССЫЛКА Документ.ЗаказПоставщику
    |                И ТаблицаДокумента.Заказ <> ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |                И ТаблицаДокумента.ВестиРасчетыПоЗаказам
    |            ТОГДА ТаблицаДокумента.Заказ
    |        ИНАЧЕ ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
    |    КОНЕЦ,
    |    ТаблицаДокумента.СчетУчетаРасчетовСПоставщиком,
    |    ТаблицаДокумента.ВалютаРасчетов,
    |    ТаблицаДокумента.ТипРасчетовКуда
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Организация,
    |    Контрагент,
    |    Договор,
    |    Валюта,
    |    Документ,
    |    Заказ,
    |    ТипРасчетов,
    |    СчетУчета";
    
    Запрос.Выполнить();
    
    // Установка исключительной блокировки контролируемых остатков расчетов с контрагентами.
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ВременнаяТаблицаРасчетыСПоставщиками.Организация КАК Организация,
    |    ВременнаяТаблицаРасчетыСПоставщиками.Контрагент КАК Контрагент,
    |    ВременнаяТаблицаРасчетыСПоставщиками.Договор КАК Договор,
    |    ВременнаяТаблицаРасчетыСПоставщиками.Документ КАК Документ,
    |    ВременнаяТаблицаРасчетыСПоставщиками.Заказ КАК Заказ,
    |    ВременнаяТаблицаРасчетыСПоставщиками.ТипРасчетов КАК ТипРасчетов
    |ИЗ
    |    ВременнаяТаблицаРасчетыСПоставщиками КАК ВременнаяТаблицаРасчетыСПоставщиками";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.РасчетыСПоставщиками");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.ИсточникДанных = РезультатЗапроса;
    
    Для каждого КолонкаРезультатЗапроса Из РезультатЗапроса.Колонки Цикл
        ЭлементБлокировки.ИспользоватьИзИсточникаДанных(КолонкаРезультатЗапроса.Имя, КолонкаРезультатЗапроса.Имя);
    КонецЦикла;
    Блокировка.Заблокировать();
    
    НомерЗапроса = 0;
    Запрос.Текст = УправлениеНебольшойФирмойСервер.ПолучитьТекстЗапросаКурсовыеРазницыРасчетыСПоставщиками(Запрос.МенеджерВременныхТаблиц, Истина, НомерЗапроса);
    МассивРезультатов = Запрос.ВыполнитьПакет();
    
    СтруктураДополнительныеСвойства.ТаблицыДляДвижений.Вставить("ТаблицаРасчетыСПоставщиками", МассивРезультатов[НомерЗапроса].Выгрузить());
    
КонецПроцедуры