Modber Сообщество
профессионалов по 1С

заполнение табличной части документа Инвентаризация ОС

заполнение табличной части документа Инвентаризация ОС
  
Сообщений: 1

0
всем доброго времени суток. есть обработка заполнения ТЧ документа Инвентаризация ОС, которая заполняет по определенной выборке ТЧ документа.
но, теперь появилась задача заполнять ТЧ сразу по нескольким счетам.
что сделал: добавил реквизит булево (назвал Сводно) и написал вот что:



&НаСервере
Процедура ВыполнитьЗаполнениеНаСервере()

Если Сводно Тогда
Запрос = Новый Запрос;
Если ЗначениеЗаполнено(Контрагент) Тогда
Запрос.УстановитьПараметр("Контрагент", Контрагент);
КонецЕсли;
Если ЗначениеЗаполнено(Склад) Тогда
Запрос.УстановитьПараметр("Склад", Склад);
КонецЕсли;
Запрос.УстановитьПараметр("Период", Дата);

Запрос.УстановитьПараметр("Счет0101", ПланыСчетов.Хозрасчетный.ОСвОрганизации); //счет 01.01
Запрос.УстановитьПараметр("Счет0103", ПланыСчетов.Хозрасчетный.АрендованноеИмущество); //счет 01.03
Запрос.УстановитьПараметр("Счет0108", ПланыСчетов.Хозрасчетный.ОСБезГосРегистрации); //счет 01.08
Запрос.УстановитьПараметр("Счет0109", ПланыСчетов.Хозрасчетный.ВыбытиеОС); //счет 01.09
Запрос.УстановитьПараметр("Счет0301", ПланыСчетов.Хозрасчетный.МЦвОрганизации); //счет 03.01
Запрос.УстановитьПараметр("Счет0302", ПланыСчетов.Хозрасчетный.МЦ_ПредоставленныеВоВременноеВладение); //счет 03.02
Запрос.УстановитьПараметр("Счет0303", ПланыСчетов.Хозрасчетный.МЦ_ПредоставленныеВоВременноеПользование); //счет 03.03
Запрос.УстановитьПараметр("Счет0304", ПланыСчетов.Хозрасчетный.ПрочиеДоходныеВложения); //счет 03.04
Запрос.УстановитьПараметр("Счет0309", ПланыСчетов.Хозрасчетный.ВыбытиеМЦ); //счет 03.09
Запрос.УстановитьПараметр("Счет001", ПланыСчетов.Хозрасчетный.АрендованныеОсновныеСредства); //счет 001

// Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ХозрасчетныйОстатки.Счет КАК Счет,
| ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
| ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
| ХозрасчетныйОстатки.Субконто3 КАК Субконто3,
| ХозрасчетныйОстатки.Организация КАК Организация,
| ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток,
| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер КАК ИнвентарныйНомер,
| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.Регистратор КАК Документ
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки КАК ХозрасчетныйОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
| ПО (ВЫБОР
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«01.01»"
| ТОГДА ХозрасчетныйОстатки.Субконто1 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«01.03»"
| ТОГДА ХозрасчетныйОстатки.Субконто1 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«01.08»"
| ТОГДА ХозрасчетныйОстатки.Субконто1 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«01.09»"
| ТОГДА ХозрасчетныйОстатки.Субконто1 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«03.01»"
| ТОГДА ХозрасчетныйОстатки.Субконто1 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«03.02»"
| ТОГДА ХозрасчетныйОстатки.Субконто2 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«03.03»"
| ТОГДА ХозрасчетныйОстатки.Субконто2 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«03.04»"
| ТОГДА ХозрасчетныйОстатки.Субконто2 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«03.09»"
| ТОГДА ХозрасчетныйОстатки.Субконто1 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«001»"
| ТОГДА ХозрасчетныйОстатки.Субконто2 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
| КОНЕЦ)
|ГДЕ
| ХозрасчетныйОстатки.Счет В (&Счет0101, &Счет0103, &Счет0108, &Счет0109, &Счет0301, &Счет0302, &Счет0303, &Счет0304, &Счет0309, &Счет001)";




//РезультатЗапроса = Запрос.Выполнить();
//
//ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
//
//Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// // Вставить обработку выборки ВыборкаДетальныеЗаписи
//КонецЦикла;

// ЗначениеВДанныеФормы(Запрос.Выполнить().Выгрузить(), ТЗ_ОС);

//Запрос.Текст = "Выбрать
//| ВЫБОР
//| ХозрасчетныйОстатки.Счет КАК Счет,
//| ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
//| ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
//| ХозрасчетныйОстатки.Субконто3 КАК Субконто3,
//| ХозрасчетныйОстатки.Организация КАК Организация
//|ИЗ
//| РегистрБухгалтерии.Хозрасчетный.Остатки КАК ХозрасчетныйОстатки
//|ГДЕ
//| ХозрасчетныйОстатки.Счет В (&Счет0101, &Счет0103, &Счет0108, &Счет0109, &Счет0301, &Счет0302, &Счет0303, &Счет0304, &Счет0309, &Счет001)
//|АВТОУПОРЯДОЧИВАНИЕ";
Иначе
Запрос = Новый Запрос;
Если ЗначениеЗаполнено(Контрагент) Тогда
Запрос.УстановитьПараметр("Контрагент", Контрагент);
КонецЕсли;
Если ЗначениеЗаполнено(Склад) Тогда
Запрос.УстановитьПараметр("Склад", Склад);
КонецЕсли;
Запрос.УстановитьПараметр("Период", Дата);
Если Счет.Код = «03.01» Тогда
Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.МЦвОрганизации);
ИначеЕсли Счет.Код = «03.03» Тогда
Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.МЦ_ПредоставленныеВоВременноеПользование);
ИначеЕсли Счет.Код = «001» Тогда
Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.АрендованныеОсновныеСредства);
КонецЕсли;

Запрос.Текст = "Выбрать
| ВЫБОР
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«03.01»"
| ТОГДА ХозрасчетныйОстатки.Субконто1
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«03.03»"
| ТОГДА ХозрасчетныйОстатки.Субконто2
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«001»"
| ТОГДА ХозрасчетныйОстатки.Субконто2
| КОНЕЦ КАК ОсновноеСредство,
| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер Как ИнвентарныйНомер,
| СУММА(ХозрасчетныйОстатки.СуммаОстаток) КАК СтоимостьПоДаннымУчета,
| СУММА(ХозрасчетныйОстатки.СуммаОстаток) КАК СтоимостьФактическая,
| Истина Как НаличиеПоДаннымУчета,
| Истина Как НаличиеФактическое
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(
| &Период,
| Счет = &Счет,
| ,"
+ ?(ЗначениеЗаполнено(Контрагент),"Субконто1 = &Контрагент", "")
+ ?(ЗначениеЗаполнено(Контрагент) И ЗначениеЗаполнено(Склад), " И ", "")
+ ?(ЗначениеЗаполнено(Склад), "Субконто3 = &Склад", "")
+
") КАК ХозрасчетныйОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
| ПО (ВЫБОР
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«03.01»"
| ТОГДА ХозрасчетныйОстатки.Субконто1 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«03.03»"
| ТОГДА ХозрасчетныйОстатки.Субконто2 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«001»"
| ТОГДА ХозрасчетныйОстатки.Субконто2 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
| КОНЕЦ)
|
|СГРУППИРОВАТЬ ПО
| ВЫБОР
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«03.01»"
| ТОГДА ХозрасчетныйОстатки.Субконто1
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«03.03»"
| ТОГДА ХозрасчетныйОстатки.Субконто2
| КОГДА ХозрасчетныйОстатки.Счет.Код = "«001»"
| ТОГДА ХозрасчетныйОстатки.Субконто2
| КОНЕЦ,
| ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер";

КонецЕсли;
ЗначениеВДанныеФормы(Запрос.Выполнить().Выгрузить(), ТЗ_ОС);
КонецПроцедуры


&НаКлиенте
Процедура ВыполнитьЗаполнение(Команда)
ВыполнитьЗаполнениеНаСервере();
КонецПроцедуры


&НаКлиенте
Процедура ЗакрытьФорму(Команда)
Закрыть(ТЗ_ОС);
КонецПроцедуры


и при заполнении ругается на

{ВнешняяОбработка.ВнешняяОбработкаЗаполнениеТЧИнвентаризацияОСБух3.Форма.ФормаВыбора.Форма(154)}: Ошибка при вызове метода контекста (ЗначениеВДанныеФормы)
ЗначениеВДанныеФормы(Запрос.Выполнить().Выгрузить(), ТЗ_ОС);
по причине:
Недопустимое значение параметра (параметр номер '2')

на всякий случай прикрепил обработку.
Прикрепленные файлы:
3_fhko1.zip | 11.12 Кб | Скачали: 91
В начало страницы 
Перейти на форум: