Документ.ОказаниеУслуги.МодульОбъекта(166)}: Ошибка при установке значения атрибута контекста (Текс

Slavanahaba

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

Движения.ОстаткиМатериалов.Записывать = Истина;
Движения.СтоимостьМатериалов.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
Движения.Управленческий.Записывать = Истина;

//Создать менеджер временных таблиц.
МенеджерВТ = Новый МенеджерВременныхТаблиц;

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

//Укажем, какойменеджер временных таблиц использует этот запрос.
Запрос.МенеджерВременныхТаблиц = МенеджерВТ;

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

Запрос.УстановитьПараметр("Ссылка", Ссылка);

Результат = Запрос.Выполнить();

Запрос2 = Новый Запрос;
Запрос2.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос2.Текст = "ВЫБРАТЬ
|НоменклатураДокумента.Номенклатура,
|НоменклатураДокумента.ВидНоменклатуры,
|НоменклатураДокумента.НаборСвойств,
|НоменклатураДокумента.КоличествоВДокументе,
|НоменклатураДокумента.СуммаВДокументе,
|ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость,
|ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество
|ИЗ
|НоменклатураДокумента КАК НоменклатураДокумента
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(
|,
|Материал В
|(ВЫБРАТЬ
|НоменклатураДокумента.Номенклатура
|ИЗ
|НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
|ПО НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Материал
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
|,
|Материал В
|(ВЫБРАТЬ
|НоменклатураДокумента.Номенклатура
|ИЗ
|НоменклатураДокумента)) КАК ОстаткиМатериаловОстатки
|ПО НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.Материал";

//Установим необходимость блокировки данных в регистрах
//СтоимостьМатериалов и ОстаткиМатериалов.
Движения.СтоимостьМатериалов.БлокироватьДляИзменения = Истина;
Движения.ОстаткиМатериалов.БлокироватьДляИзменения = Истина;

//Запишем пустые наборы записей, чтобы читать остатки без учета данных в документе.
Движения.СтоимостьМатериалов.Записать();
Движения.ОстаткиМатериалов.Записать();

Результат = Запрос2.Выполнить();

//Если надо посмотреть результат запроса
//ТЗ = Результат.Выгрузить();

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

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда
СтоимостьМатериала = 0;
Иначе СтоимостьМатериала = ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество;
КонецЕсли;

Если ВыборкаДетальныеЗаписи.ВидНоменклатуры=Перечисления.ВидыНоменклатуры.Материал Тогда
//регистр ОстаткиМатериалов Расход
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.НаборСвойств = ВыборкаДетальныеЗаписи.НаборСвойств;
Движение.Склад = Склад;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;

// регистр СтоимостьМатериалов Расход
Движение = Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Стоимость = ВыборкаДетальныеЗаписи.КоличествоВДокументе*СтоимостьМатериала;

// Регистр Управленческий
// Первая проводка:Д 62 (ДебиторскаяЗадолженность) - К 90 (Капитал) Розничная сумма
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Основной.ДебиторскаяЗадолженность;
Движение.СчетКт = ПланыСчетов.Основной.Капитал;
Движение.Период = Дата;
Движение.Сумма = ВыборкаДетальныеЗаписи.СуммаВДокументе;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Клиенты] = Клиент;
// Вторая проводка: Д 90 (Капитал) - К 41 (Товары) - себестоимость
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Основной.Капитал;
Движение.СчетКт = ПланыСчетов.Основной.Товары;
Движение.Период = Дата;
Движение.Сумма = СтоимостьМатериала*ВыборкаДетальныеЗаписи.КоличествоВДокументе;
Движение.КоличествоКт = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Материалы] = ВыборкаДетальныеЗаписи.Номенклатура;
КонецЕсли;

// Регистр Продажи
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Клиент = Клиент;
Движение.Мастер = Мастер;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
Движение.Выручка = ВыборкаДетальныеЗаписи.СуммаВДокументе;
Движение.Стоимость = СтоимостьМатериала * ВыборкаДетальныеЗаписи.КоличествоВДокументе;
КонецЦикла;

Движения.Записать();
Если Режим = РежимПроведенияДокумента.Оперативный Тогда

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

Результат = Запрос3.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "Лей" + Строка(- ВыборкаДетальныеЗаписи.КоличествоОстаток) + " единиц материала Лей """ + ВыборкаДетальныеЗаписи.Материал ="""";
Сообщение.Сообщить();
Отказ = Истина;

КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)

Префикс = Обмен.ПолучитьПрефиксНомера();

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

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("СправочникСсылка.Клиенты") Тогда
// Заполнение шапки
Клиент = ДанныеЗаполнения.Ссылка;
ОбъектОснование = ДанныеЗаполнения.Ссылка;
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("ПереченьНоменклатуры.НаборСвойств"));
Индекс = 0;

Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
Индекс = Индекс + 1;

Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда

Если Не ЗначениеЗаполнено(ТекСтрокаПереченьНоменклатуры.НаборСвойств) Тогда
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "В строке " + Индекс + " списка Перечень номенклатуры не заполнена колонка Набор свойств";
Сообщение.Поле = "ПереченьНоменклатуры[" + Строка(Индекс - 1) + "].НаборСвойств";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;

КонецЕсли;

КонецЦикла;

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


{Документ.ОказаниеУслуги.МодульОбъекта(166)}: Ошибка при установке значения атрибута контекста (Текст)
Сообщение.Текст = "Лей" + Строка(- ВыборкаДетальныеЗаписи.КоличествоОстаток) + " единиц материала Лей """ + ВыборкаДетальныеЗаписи.Материал ="""";
по причине:
Несоответствие типов
Несоответствие типов
 
Верх