|
Функция проведения по счету работает в БП 1.6, но задваивает в УПП 1.3 | ☑ | ||
---|---|---|---|---|
0
egorover
10.04.14
✎
10:11
|
В модуле проведения документа стоит моя функция дополнительных проводок
Процедура ДвиженияПоРегистрам(.......) Если МоиМодули.ПровестиПо012(Ссылка, Движения) Тогда Возврат; КонецЕсли; |
|||
1
egorover
10.04.14
✎
10:13
|
Функция ПровестиПо012(Док, Движения) Экспорт
ТаблицаПоТоварам = Новый ТаблицаЗначений; ТаблицаПоТоварам = Док.Товары.Выгрузить(); ТаблицаПоТоварам.Свернуть("Номенклатура","Количество"); ТаблицаПоТаре = Новый ТаблицаЗначений; ТаблицаПоТаре = Док.ВозвратнаяТара.Выгрузить(); ТаблицаПоТаре.Свернуть("Номенклатура","Количество"); ДальшеНеПроводить = Ложь; СчетУчета012 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("012"); Если Док.ТипДвиженияПоСкладу = Перечисления.ТипыДвиженийПоСкладу.Оприходовать Тогда Для к = 0 по ТаблицаПоТоварам.Количество() - 1 Цикл Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Период = Док.Дата; Проводка.Организация = Док.Организация; Проводка.Сумма = ТаблицаПоТоварам[к].Количество * Константы.ЦенаПостановки.Получить(); Проводка.Содержание = "Товар передан покупателю на ответственное хранение."; Проводка.СчетДт = СчетУчета012; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Склады", Док.Склад); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Номенклатура", ТаблицаПоТоварам[к].Номенклатура); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,3, Док.а_ВидДоставки); Проводка.КоличествоДт = ТаблицаПоТоварам[к].Количество; КонецЦикла; Для к = 0 по ТаблицаПоТаре.Количество() - 1 Цикл Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Период = Док.Дата; Проводка.Организация = Док.Организация; Проводка.Сумма = ТаблицаПоТаре[к].Количество * Константы.ЦенаТары.Получить(); Проводка.Содержание = "Тара передана покупателю на ответственное хранение."; Проводка.СчетДт = СчетУчета012; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Склады", Док.Склад); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт,Проводка.СубконтоДт,"Номенклатура", ТаблицаПоТаре[к].Номенклатура); Проводка.КоличествоДт = ТаблицаПоТаре[к].Количество; КонецЦикла; ДальшеНеПроводить = Истина; ИначеЕсли Док.ТипДвиженияПоСкладу = Перечисления.ТипыДвижений.СписатьСоСклада Тогда Для к = 0 по ТаблицаПоТоварам.Количество() - 1 Цикл Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Период = Док.Дата; Проводка.Организация = Док.Организация; Проводка.Сумма = ТаблицаПоТоварам[к].Количество * Константы.ЦенаПостановки.Получить(); Проводка.Содержание = "Товар получен от покупателя с ответственного хранения."; Проводка.СчетКт = СчетУчета012; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Склады", Док.Склад); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Номенклатура", ТаблицаПоТоварам[к].Номенклатура); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,3, Док.а_ВидДоставки); Проводка.КоличествоКт = ТаблицаПоТоварам[к].Количество; КонецЦикла; Для к = 0 по ТаблицаПоТаре.Количество() - 1 Цикл Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Период = Док.Дата; Проводка.Организация = Док.Организация; Проводка.Сумма = ТаблицаПоТаре[к].Количество * Константы.ЦенаТары.Получить(); Проводка.Содержание = "Тара получена от покупателя с ответственного хранения."; Проводка.СчетКт = СчетУчета012; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Склады", Док.Склад); БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт,"Номенклатура", ТаблицаПоТаре[к].Номенклатура); Проводка.КоличествоКт = ТаблицаПоТаре[к].Количество; КонецЦикла; КонецЕсли; Возврат ДальшеНеПроводить; КонецФункции |
|||
2
egorover
10.04.14
✎
10:14
|
В БП 1.6 все получалось, а в УПП 1.3, задваивает проводки
|
|||
3
egorover
10.04.14
✎
10:17
|
012 156 128 546 448
Бутылка стеклянная Товар получен от покупателя с ответственного хранения. 012 82 10 660 Поддоны 1200*1000 Тара получена от покупателя с ответственного хранения. 012 82 10 660 Короб п/пропилен. Тара получена от покупателя с ответственного хранения. 012 574 74 620 Пластиковая прокладка Тара получена от покупателя с ответственного хранения. 012 156 128 546 448 Бутылка стеклянная Товар получен от покупателя с ответственного хранения. 012 82 10 660 Поддоны 1200*1000 Тара получена от покупателя с ответственного хранения. 012 82 10 660 Короб п/пропилен. Тара получена от покупателя с ответственного хранения. 012 574 74 620 Пластиковая прокладка Тара получена от покупателя с ответственного хранения. |
|||
4
Kalambur
10.04.14
✎
10:35
|
Потому что УПП умная...
|
|||
5
oslokot
10.04.14
✎
10:46
|
ну а че, если функция два раза запускается, то вполне..
|
|||
6
egorover
10.04.14
✎
10:51
|
ну а че, если функция два раза запускается, то вполне..
Запускается один раз, проверено Отладчиком |
|||
7
egorover
10.04.14
✎
10:53
|
Может в движениях РегистраХозрасчетного не хватает реквизитов? а потом их УПП из-за это умножает на два?
|
|||
8
egorover
10.04.14
✎
10:55
|
Функция делает все правильно Отладчиком я проверял, количество индексов в ТаблицеЗначений равно количеству строк в Табличных Значениях документов и Проводка = Движения.Хозрасчетный.Добавить(); добавляет сколько нужно Движений, но вот что потом в глубинах проведения УПП, может все таки я не правильно передаю из модуля проведения Если МоиМодули.ПровестиПо012(Ссылка, Движения) Тогда Возврат, вот эти "Движения" может мне не передавать?
|
|||
9
Kalambur
10.04.14
✎
11:14
|
(8) запросто, потому что в упп проведение в подписках
|
|||
10
Kalambur
10.04.14
✎
11:14
|
+ и тебе туда советую работать
|
|||
11
shuhard
10.04.14
✎
11:47
|
(0) Проводка.Записать(Ложь)
|
|||
12
egorover
10.04.14
✎
12:03
|
Сейчас проверю
|
|||
13
cw014
10.04.14
✎
12:04
|
Шедевр:
ТаблицаПоТоварам = Новый ТаблицаЗначений; ТаблицаПоТоварам = Док.Товары.Выгрузить(); |
|||
14
egorover
10.04.14
✎
12:07
|
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине: Метод объекта не обнаружен (Записать) |
|||
15
egorover
10.04.14
✎
12:35
|
... о мамочки мои, слався имя твое
(0) Проводка.Записать(Ложь) - ошибка стал играть Проводка.Активность = Ложь - ошибка вышел на процедуру УПП |
|||
16
egorover
10.04.14
✎
12:35
|
/ Записывет набор записей в базу данных.
// Процедура ЗаписатьДвижения(ДвиженияРегистра, ТаблицаДвиженийРегистра, Замещать, ДвижениеНДСПродукции = Ложь, ТолькоВключениеНДСВСтоимость = Неопределено) // При замещении нужно удалять записи, сформированные прошлым списанием партий (СписаниеПартий=Истина), // если у регистра есть реквизит СписаниеПартий, то нужно удалить строки с Истина // Для списания партий НДС предусмотрены еще 2 реквизита СписаниеПартийНДС и НДСПродукции // Движения по налоговому учету могут создаваться при проведении по бухгалтерскому учету если в документе // установлен флаг "Отражать в налоговом учете" ДМ = ДвиженияРегистра.Метаданные(); ЕстьРеквизитСписаниеПартий = (ДМ.Реквизиты.Найти("СписаниеПартий") <> Неопределено); |
|||
17
egorover
10.04.14
✎
12:36
|
При замещении нужно удалять записи, сформированные прошлым списанием партий (СписаниеПартий=Истина),
|
|||
18
egorover
10.04.14
✎
12:37
|
вот чего ему не хватало
Проводка.СписаниеПартий = Истина; всё закрываем |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |