Цикл по проводкам

1. G.P. 11 18.10.21 23:27 Сейчас в теме
Привет, народ!
Кто-нибудь знает, как в 1С 8.3 обойти в цикле все проводки операции, введенной вручную?
Не могу найти нормальную документацию по этому поводу.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. FatPanzer 18.10.21 23:33 Сейчас в теме
Конечно знаем. Сделать запрос к регистрам с отбором по регистратору, и обходить его.
Ну или коллекция Движения спасет отца русской демократии.
3. G.P. 11 19.10.21 00:21 Сейчас в теме
док=Документы.ОперацияБух.НайтиПоНомеру("0А00-001376",Дата("20161231")); 
		
    Для Каждого Строка из  док.Движения Цикл 
        Если Строка.СуммаНУКт-Строка.СуммаОперации<>0 Тогда
            ...
        КонецЕсли;
    КонецЦикла;


Программе не знакомо это слово - "Движения"
Что делаю не так?
5. user856012 13 19.10.21 01:14 Сейчас в теме
(3)
Что делаю не так?
Я думаю, не учитываете вот это:
Сначала создаем и записываем документ «Операция». Сам документ не содержит никаких проводок. Затем создаем набор записей регистра бухгалтерии и записываем в него проводки, используя документ «Операция» в качестве регистратора.


Как сделать правильно? Примерно так: http://forum.infostart.ru/forum9/topic53084/message585139/#message585139
6. Fox-trot 158 19.10.21 01:20 Сейчас в теме
(3) для этого нужен объект, а не ссылка
Luis-Gomer; FatPanzer; +2 Ответить
4. G.P. 11 19.10.21 01:10 Сейчас в теме
Как вариант составил запрос.
Но при его выполнении отладка зависает. Какого?

	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
		|	ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКт,
		|	ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК СубконтоКт1,
		|	ХозрасчетныйДвиженияССубконто.СубконтоКт2 КАК СубконтоКт2,
		|	ХозрасчетныйДвиженияССубконто.СубконтоКт3 КАК СубконтоКт3,
		|	ХозрасчетныйДвиженияССубконто.Организация КАК Организация,
		|	ХозрасчетныйДвиженияССубконто.Сумма КАК Сумма,
		|	ХозрасчетныйДвиженияССубконто.СуммаНУКт КАК СуммаНУКт
		|ИЗ
		|	РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
		|ГДЕ
		|	ХозрасчетныйДвиженияССубконто.Регистратор = &Регистратор
		|СГРУППИРОВАТЬ ПО
		|	ХозрасчетныйДвиженияССубконто.НомерСтроки,
		|	ХозрасчетныйДвиженияССубконто.Регистратор,
		|	ХозрасчетныйДвиженияССубконто.СчетКт,
		|	ХозрасчетныйДвиженияССубконто.СубконтоКт1,
		|	ХозрасчетныйДвиженияССубконто.СубконтоКт2,
		|	ХозрасчетныйДвиженияССубконто.СубконтоКт3,
		|	ХозрасчетныйДвиженияССубконто.Организация,
		|	ХозрасчетныйДвиженияССубконто.Сумма,
		|	ХозрасчетныйДвиженияССубконто.СуммаНУКт";
Показать
7. Fox-trot 158 19.10.21 01:21 Сейчас в теме
(4) это самая "тяжелая" таблица для запросов
8. ZergKRSK 129 19.10.21 04:27 Сейчас в теме
(4) использовать РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт
10. 1CKEBO 20.10.21 07:51 Сейчас в теме
(4) Можно и таким запросом, но:
1) отбор не в "ГДЕ", а в параметрах ВТ
2) очень желательно добавить отбор по периоду (если допустимо)
3) добавить отбор на "Активность = Истина"
4) группировку убрать или оставить только нужные поля
11. SlavaKron 20.10.21 18:20 Сейчас в теме
(10)
добавить отбор на "Активность = Истина"
Разве виртуальные таблицы формируются не только из активных записей?
12. 1CKEBO 21.10.21 05:21 Сейчас в теме
(11) нет, для данной ВТ не только.
Само наличие поля Активность в таблице говорит о том, что без установки отбора по нему будут выбраны все записи, в том числе неактивные.
9. nomad_irk 72 19.10.21 10:08 Сейчас в теме
(3) все не так:
док=Документы.ОперацияБух.НайтиПоНомеру("0А00-001376",Дата("20161231")); 
ДокОбъект = Док.ПолучитьОбъект();
Движение = ДокОбъект.Движения["Хозрасчетный"];
Движение.Прочитать();
Для Каждого Строка из  Движение Цикл 
        Если Строка.СуммаНУКт-Строка.СуммаОперации<>0 Тогда
            ...
        КонецЕсли;
КонецЦикла;
Показать
13. zavsom 103 07.04.24 23:46 Сейчас в теме
ДокОперацияСсылка = ТекДок.Ссылка;
		ДатаВДок = ТекДок.Дата;
		
		Проводки = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
		Проводки.Отбор.Регистратор.Установить(ДокОперацияСсылка);
		
		Проводки.Прочитать();  
		
		инд1=1;
		Для Каждого пров из Проводки Цикл
			
			Если пров.СчетКт.Код = "91.01" Тогда				
				БухгалтерскийУчет.УстановитьСубконто(пров.СчетКт, пров.СубконтоКт, "ПрочиеДоходыИРасходы", Объект.ДиР9101);
			КонецЕсли;
			
			Если пров.СчетДт.Код = "91.02" Тогда	
				БухгалтерскийУчет.УстановитьСубконто(пров.СчетДт, пров.СубконтоДт, "ПрочиеДоходыИРасходы", Объект.ДиР9102); 	
			КонецЕсли;
	   
		   инд1=инд1+1;
		КонецЦикла;
		//Проводки.ОбменДанными.Загрузка = ИСТИНА;
		Проводки.Записать(ИСТИНА);
Показать



Где Дир это субконто справочник доходы и расходы
Оставьте свое сообщение

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