|
В регистр бухгалтерии "Управленческий" Радченко | ☑ | ||
---|---|---|---|---|
0
Волшебный Радченко
07.07.14
✎
10:25
|
В регистр бухгалтерии "Управленческий" выводятся данные оперативно проведённых документов. Ошибка в самом коде не присутствует. Компилятор не ругается.
Вот листинг обработки документа "ОказаниеУслуги", в чём траблы не понимаю. Добавление новой структуры было после комментария Регистр Управления и до конца закрывающего КонецЕсли. Процедура ОбработкаПроведения(Отказ, Режим) Запрос = Новый Запрос; Если Режим = РежимПроведенияДокумента.Оперативный Тогда Запрос.Текст = "ВЫБРАТЬ | ОказаниеУслугиПереченьНоменклатуры.Номенклатура, | ОказаниеУслугиПереченьНоменклатуры.Количество, | ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры, | ОказаниеУслугиПереченьНоменклатуры.Сумма, | ОстаткиМатериаловОстатки.КоличествоОстаток, | СтоимостьМатериаловОстатки.СтоимостьОстаток, | ОстаткиМатериаловОстаткиНаСкладе.КоличествоОстаток КАК КоличествоНаСкладе |ИЗ | Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки( | &МоментВремени, | Материал В (&СписокНоменклатурыДокумента) | И Склад = &СкладВДокументе) КАК ОстаткиМатериаловОстаткиНаСкладе | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстаткиНаСкладе.Материал | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал |ГДЕ | ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка | |ДЛЯ ИЗМЕНЕНИЯ | РегистрНакопления.ОстаткиМатериалов.Остатки, | РегистрНакопления.СтоимостьМатериалов.Остатки"; Запрос.УстановитьПараметр("СкладВДокументе",Склад); Иначе Запрос.Текст = "ВЫБРАТЬ | ОказаниеУслугиПереченьНоменклатуры.Номенклатура, | ОказаниеУслугиПереченьНоменклатуры.Количество, | ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры, | ОказаниеУслугиПереченьНоменклатуры.Сумма, | ОстаткиМатериаловОстатки.КоличествоОстаток, | СтоимостьМатериаловОстатки.СтоимостьОстаток |ИЗ | Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал |ГДЕ | ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка | |ДЛЯ ИЗМЕНЕНИЯ | РегистрНакопления.ОстаткиМатериалов.Остатки, | РегистрНакопления.СтоимостьМатериалов.Остатки"; КонецЕсли; Запрос.УстановитьПараметр("МоментВремени",МоментВремени()); Запрос.УстановитьПараметр("СписокНоменклатурыДокумента",ПереченьНоменклатуры.ВыгрузитьКолонку("Номенклатура")); Запрос.УстановитьПараметр("Ссылка",Ссылка); ВыборкаРезультатаЗапроса = Запрос.Выполнить().Выбрать(); Пока ВыборкаРезультатаЗапроса.Следующий() Цикл КонецЦикла; Пока ВыборкаРезультатаЗапроса.Следующий() Цикл Если Режим = РежимПроведенияДокумента.Оперативный Тогда Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда Остаток = ?(ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе = Null, 0,ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе); Если Остаток < ВыборкаРезультатаЗапроса.Количество Тогда Сообщить("Материала" + СокрЛП(ВыборкаРезультатаЗапроса.Номенклатура) + "имеется только" + Остаток); Отказ = Истина; Возврат; КонецЕсли; КонецЕсли; КонецЕсли; Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда Движение = Движения.СтоимостьМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ВыборкаРезультатаЗапроса.Номенклатура; Движение.Склад = Склад; Движение.Количество = ВыборкаРезультатаЗапроса.Количество; // Второ типа регистр стоимости материалов расход Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ВыборкаРезультатаЗапроса.Номелкатура; СтоимостьМатериала = ?(ВыборкаРезультатаЗапроса.КоличествоОстаток = Null, 0,ВыборкаРезультатаЗапроса.СтоимостьОстаток / ВыборкаРезультатаЗапроса.КоличествоОстаток); Движение.Стоимость = СтоимостьМатериала * ВыборкаРезультатаЗапроса.Количество; // По регистру Управленческий // Первая проводка \\ Движение = Движения.Управленческий.Добавить(); Движение.СчетДт = ПланыСчетов.Основной.ДебиторскаяЗадолженность; Движение.СчетКт = ПланыСчетов.Основной.Капитал; Движение.Период = Дата; Движение.Сумма = ВыборкаРезультатаЗапроса.Сумма; Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Клиенты] = Клиент; // Вторая проводка Движение = Движения.Управленческий.Добавить(); Движение.СчетДт = ПланыСчетов.Основной.Капитал; Движение.СчетКт = ПланыСчетов.Основной.Товары; Движение.Период = Дата; Движение.Сумма = СтоимостьМатериала * ВыборкаРезультатаЗапроса.Количество; Движение.КоличествоКт = ВыборкаРезультатаЗапроса.Количество; Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Материалы] = ВыборкаРезультатаЗапроса.Номенклатура; КонецЕсли; //sale Движение = Движения.Продажи.Добавить(); Движение.Период = Дата; Движение.Номенклатура = ВыборкаРезультатаЗапроса.Номенклатура; Движение.Клиент = Клиент; Движение.Мастер = Мастер; Движение.Количество = ВыборкаРезультатаЗапроса.Количество; Движение.Выручка = ВыборкаРезультатаЗапроса.Сумма; Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда Движение.Стоимость = СтоимостьМатериала * ВыборкаРезультатаЗапроса.Количество; Иначе Движение.Стоимость = 0; КонецЕсли; КонецЦикла; Движения.ОстаткиМатериалов.Записать(); Движения.СтоимостьМатериалов.Записать(); Движения.Продажи.Записать(); КонецПроцедуры |
|||
1
Волшебный Радченко
07.07.14
✎
10:26
|
П.с. Первый раз пользуюсь форумом, вставил код как получилось.
|
|||
2
МихаилМ
07.07.14
✎
10:26
|
у радченко есть свой форум.
|
|||
3
Segate
07.07.14
✎
10:27
|
А вопрос то?
|
|||
4
Волшебный Радченко
07.07.14
✎
10:27
|
Можно ссылку?
|
|||
5
Wobland
07.07.14
✎
10:27
|
(0) это ты хвастаешься?
|
|||
6
Волшебный Радченко
07.07.14
✎
10:27
|
В регистр бухгалтерии "Управленческий" "НЕ" выводятся данные оперативно проведённых документов. А, боже..
|
|||
7
Wobland
07.07.14
✎
10:28
|
(6) в регистр данные вообще не принято выводить. это тебе не отчёт какой-нибудь
|
|||
8
GROOVY
07.07.14
✎
10:29
|
||||
9
Волшебный Радченко
07.07.14
✎
10:30
|
(8) Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |