регистр бухгалтерии

1. BARDER 37 16.01.20 18:07 Сейчас в теме
Доброго времени суток.
Возникла сложность одна по регистру бухгалтерии в УПП 1.3.
При проведении документа нужно сторнировать определенные товары.

Тоесть есть документ Отчет комиссионера о продажах, в таблице некий реквизит добавлен "Возврат"

Так вот нужно отобрать записи регистра бухгалтерии субконтоКТ с Ключем "Номенклатура" и Значением "НекаяНоменклатура"

Номенклатуру буду в переборе табличной части вычислять.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. user613191_olgargor 16.01.20 18:56 Сейчас в теме
(1) а в чем вопрос заключается?
2. kniga888 16.01.20 18:17 Сейчас в теме
Зачем перебирать табличную часть, если можно найти строки со значением номенклатуры и их перебрать?
3. kniga888 16.01.20 18:47 Сейчас в теме
(2)
ВЫБРАТЬ
	ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКт,
	ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК СубконтоКт1,
	ХозрасчетныйДвиженияССубконто.Сумма КАК Сумма,
	ХозрасчетныйДвиженияССубконто.КоличествоКт КАК КоличествоКт
ИЗ
	РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
			,
			,
			ВидСубконтоКт1 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура)
				И СубконтоКт1 = &Номенклатура,
			,
			) КАК ХозрасчетныйДвиженияССубконто
Показать
5. BARDER 37 16.01.20 20:35 Сейчас в теме
(3)
Я делаю так:
Сначала Выделяю все возвратные товары:
Отбор = Новый Структура;
Отбор.Вставить("Возврат", Истина);
ВозвратныеТовары = Источник.Товары.Выгрузить(Отбор);

Далее выполняю перебор регистра, если в Записи Субконто содержит ссылку на Справочник номенклатура То перебераю возвратную номенклатуру что бы выяснить не является ли она возвратом, если возврат то я умножаю на -1 что бы сторнировать.
Для Каждого Запись ИЗ Источник.Движения.Хозрасчетный Цикл
        Если ТипЗнч(Запись.СубконтоКт.Номенклатура) = Тип("СправочникСсылка.Номенклатура") Тогда 	
				
				Для Каждого Товар ИЗ ВозвратныеТовары Цикл
					
					Если  Запись.СубконтоКт.Номенклатура = Товар.Номенклатура Тогда
						Запись.Сумма = Запись.Сумма * -1;
						
						Запись.КоличествоКт = Запись.КоличествоКт * -1;
						

					КонецЕсли;
					
				
			
					
				КонецЦикла;
		    КонецЕсли;
КонецЦикла;
Если Метаданное.Движения.Содержит(Метаданные.РегистрыБухгалтерии.Хозрасчетный) Тогда
	Источник.Движения.Хозрасчетный.Записать();
КонецЕсли;
Показать

Но оптимизация нулевая, так как сначала общий модуль срабатывает а потом уже подписка на события, в итоге долго проводиться документ.
Может подскажите как оптимизировать этот алгоритм, а то никак не соображу
6. kniga888 17.01.20 11:08 Сейчас в теме
(5)
ссылку на Справочник номенклатура

Можно попробовать отобрать строки с возвратом, обойти их в цикле и установить отбор на набор записей движений с текущим значением, потом по этому отбору обойти уже записи регистра.
7. BARDER 37 17.01.20 22:03 Сейчас в теме
по 76.06 Пытаюсь записать регистр

но программа выдает:
Запись не верна! Вид субконто "Контрагенты" не доступен для данной записи! (Регистр бухгалтерии: Журнал проводок (бухгалтерский учет); Номер строки: 9)


Извиняюсь перепутал Кт и Дт
8. cherva 97 20.01.20 16:45 Сейчас в теме
Вообще все товары комиссионные учитываются на регистре Парии товаров переданные (УУ,БУ, НУ) там они и учитываются. А возврат делали документом Возврат переданных товаров
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот