Имя: Пароль:
1C
1С v8
Порядок субконто
0 Bibr
 
27.04.12
13:40
Выгружаю набор записей бухгалтерского регистра в ТЗ, которую потом подсовываю в запрос.
Проблема в том, что порядок субконто хаотичный, о чем и прочитал в СП.

Думаю блин процедурку что ли накалякать, которая меняев в этой тз колонки в соответствии с номерами субконто в конфигураторе..

может кто как красивше решал эту проблему?
1 Mort
 
27.04.12
13:40
Одним запросом все делать.
2 Дикообразко
 
27.04.12
13:41
+1
3 Bibr
 
27.04.12
14:54
(1) процедура "ПередЗаписью" модуля набора записей бухгалтерского хозрасчетного регистра.

На входе Набор записей и есть. Не вижу вариантов как это одним запросом сделать
4 Bibr
 
27.04.12
15:23
Сначала решил, что достаточно будет переименовать колонки. теперь сел делать - понимаю, что набор записей-то с разными проводками и по разному перемешаны субконто. т.е. надо по каждой строке анализировать и изменять. Некошерно.

Ищем красивое решение
5 Нуф-Нуф
 
27.04.12
15:26
юзай не набор записей а сделай запрос к регистру с указанием своего порядка субконто
6 Bibr
 
27.04.12
15:38
(5) извиняюсь, не понял. можете пояснить?
7 Bibr
 
27.04.12
16:17
в общем, наваял процедурку - может сэкономит кому-то время:)

Процедура ОтсортироватьПоСубконто(ТЗ)
   
   Для каждого Строка Из ТЗ Цикл
       
       //Дебет
       СоотвСубконто = Новый Соответствие;
       СоотвСубконто.Вставить(Строка.ВидСубконтоДт1,Строка.СубконтоДт1);
       СоотвСубконто.Вставить(Строка.ВидСубконтоДт2,Строка.СубконтоДт2);
       СоотвСубконто.Вставить(Строка.ВидСубконтоДт3,Строка.СубконтоДт3);
       
       Сч=0;
       Для каждого СтрокаВидСубконто Из Строка.СчетДт.ВидыСубконто Цикл
           Сч=Сч+1;
           ВидСубконто = СтрокаВидСубконто.ВидСубконто;
           Строка["ВидСубконтоДт"+Сч] = ВидСубконто;
           Строка["СубконтоДт"+Сч] = СоотвСубконто.Получить(ВидСубконто);
       КонецЦикла;
       
       
       //Кредит
       СоотвСубконто = Новый Соответствие;
       СоотвСубконто.Вставить(Строка.ВидСубконтоКт1,Строка.СубконтоКт1);
       СоотвСубконто.Вставить(Строка.ВидСубконтоКт2,Строка.СубконтоКт2);
       СоотвСубконто.Вставить(Строка.ВидСубконтоКт3,Строка.СубконтоКт3);
       
       Сч=0;
       Для каждого СтрокаВидСубконто Из Строка.СчетКт.ВидыСубконто Цикл
           Сч=Сч+1;
           ВидСубконто = СтрокаВидСубконто.ВидСубконто;
           Строка["ВидСубконтоКт"+Сч] = ВидСубконто;
           Строка["СубконтоКт"+Сч] = СоотвСубконто.Получить(ВидСубконто);
       КонецЦикла;
       
   КонецЦикла;
   
КонецПроцедуры
Независимо от того, куда вы едете — это в гору и против ветра!