|
Помогите программно рассчитать себестоимость 1с 8.2 бп | ☑ | ||
---|---|---|---|---|
0
sevensword
05.10.15
✎
14:55
|
Собственно пробую рассчитать себестоимость для записи в проводку, но где ошибаюсь, в проводке в строке сумма пусто.что не так?
Процедура ОбработкаПроведения(Отказ, Режим) //остатки по 41 счету Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | ХозрасчетныйОстатки.Счет, | ХозрасчетныйОстатки.Организация, | ХозрасчетныйОстатки.Субконто2 КАК Номенклатура, | ХозрасчетныйОстатки.Субконто3 КАК Склад, | ХозрасчетныйОстатки.СуммаОстатокДт КАК Сумма, | ХозрасчетныйОстатки.КоличествоОстатокДт КАК Количество |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Позиция,Счет.Код = ""41.01"", ,Субконто3 В (&Склад)) КАК ХозрасчетныйОстатки |УПОРЯДОЧИТЬ ПО | Номенклатура, | Склад"; Запрос.УстановитьПараметр("Организация", Склад.Организация); //Организации Запрос.УстановитьПараметр("Позиция", МоментВремени()); //Дата Запрос.УстановитьПараметр("Склад", Склад); // АЗС // Запрос.УстановитьПараметр("Номенклатура",Номенклатура); // АЗС Остатки41 = Запрос.Выполнить().Выгрузить(); Проводки = Движения.Хозрасчетный; ДатаДок = Дата; Для каждого СтрокаТаблицы Из отгрузка Цикл Себестоимость=0; Если СтрокаТаблицы.Номенклатура= Справочники.Номенклатура.ПустаяСсылка() Тогда Возврат; // номенклатура не может быть пустой!!! Конецесли; СтрокаОст = Остатки41.Найти(СтрокаТаблицы.Номенклатура); Себестоимость = СтрокаТаблицы.Количество*?(СтрокаОст.Количество=0,0,СтрокаОст.Сумма/СтрокаОст.Количество); Проводка = Проводки.Добавить(); Проводка.Период = ДатаДок; Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1"); Проводка.Организация = Склад.Организация; Проводка.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01"); Проводка.Сумма = Себестоимость; Проводка.КоличествоКт = СтрокаТаблицы.Количество; конеццикла; КонецПроцедуры |
|||
1
vicof
05.10.15
✎
15:04
|
отладчик для лохов?
|
|||
2
Tatitutu
05.10.15
✎
15:18
|
Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1");
Проводка.Организация = Склад.Организация; Проводка.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01"); это - "5" !!! Садись - двойка. Переписывай - все не так |
|||
3
hhhh
05.10.15
✎
15:24
|
(2) вроде так
|
|||
4
Cyberhawk
05.10.15
✎
15:26
|
Для каждого СтрокаТаблицы Из отгрузка Цикл
Себестоимость=0; .... Проводка.Сумма = Себестоимость; Мда |
|||
5
Tatitutu
05.10.15
✎
15:30
|
(4) ну это нет...
он потом пытается реабалититироваться Себестоимость = СтрокаТаблицы.Количество*?(СтрокаОст.Количество=0,0,СтрокаОст.Сумма/СтрокаОст.Количество); |
|||
6
ВРедная
05.10.15
✎
15:31
|
(0) Как насчет того, чтобы глянуть в эту таблицу Остатки41 в отладчике?
Что там вообще у тебя сформировалось |
|||
7
sevensword
05.10.15
✎
17:20
|
(6)в том то и дело через отладчик показывает что в себестоимости есть данные а выводит 0
|
|||
8
piter3
05.10.15
✎
17:21
|
(7) на этапе
Себестоимость = СтрокаТаблицы.Количество*?(СтрокаОст.Количество=0,0,СтрокаОст.Сумма/СтрокаОст.Количество); ? |
|||
9
sevensword
05.10.15
✎
17:25
|
себестоимость=207185,02 число
|
|||
10
sevensword
05.10.15
✎
17:36
|
всем спасибо , дело не в себестоимости а в некоректном выводе проводки
|
|||
11
piter3
05.10.15
✎
17:36
|
а где говоришь записать у тебя?
|
|||
12
Тoлько_
Просмотр 05.10.15
✎
17:42
|
(0) Забыл в начале Движения.Хозрасчетный.Записывать = Истина;
Ну и если режим обычного приложения, то и Движения.Хозрасчетный.Очистить(); И в проводках забыл субконто заполнить. И блокировку забыл перед получением остатков... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |