Имя: Пароль:
1C
1С v8
Помогите с запросом
0 Deenka
 
21.06.12
16:02
У таблице значений тз3 после группировки есть 3 записи.
Почему после прохождения цикла по тз3 создается не 3 документа, а столько документов, сколько записей с операциями есть по каждому документу (у таблице значений ТабД). ТабД соединена с тз3 по полю док.

   тз3.свернуть("док, дата, коментар, зміст");

   Для Каждого Строкатз3 Из тз3 Цикл
       Документ = Документы.ОперацияБух.СоздатьДокумент();    
       Документ.Организация = Справочники.Организации.НайтиПоНаименованию("Добро");
       Документ.Дата = Строкатз3["дата"];
       Документ.Содержание = Строкатз3["док"];
                     
               Запрос = Новый Запрос;
               МВТ = Новый МенеджерВременныхТаблиц;
               Запрос.МенеджерВременныхТаблиц = МВТ;
               Запрос.Текст =
               "ВЫБРАТЬ
               |    Выразить(Т.Док КАК Строка(100)) КАК Док,    
               |    Т.Дата КАК Дата,
               |    Выразить(Т.Дт КАК СТРОКА(10)) КАК Дт,
               |    Выразить(Т.Кт КАК СТРОКА(10)) КАК Кт,
               |    Т.Сума КАК Сума,
               |ПОМЕСТИТЬ
               |    ТабДок
               |ИЗ
               |    &ТабДок КАК Т;
               |ВЫБРАТЬ * ИЗ ТабДок
               |ГДЕ
               |ТабДок.Док = &Стр";
               
                   Запрос.УстановитьПараметр("ТабДок", ТабД);
                   Запрос.УстановитьПараметр("Стр", Строкатз3["док"]);

                   Результат = Запрос.Выполнить();
                   
                   Вибірка = Результат.Выбрать();      
                   Пока Вибірка.Следующий() Цикл
                       СтрокаДок = Документ.Движения.Хозрасчетный.Добавить();
                       СтрокаДок.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду(Вибірка.Дт);
                       СтрокаДок.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду(Вибірка.Кт);
                       СтрокаДок.Период = Вибірка.Дата;
                       СтрокаДок.Сумма = Вибірка.сума;
                       СтрокаДок.Содержание = Вибірка.Зміст;
                   КонецЦикла;
               
       Документ.Записать();
       
   КонецЦикла;
1 ЧашкаЧая
 
21.06.12
16:05
Всегда было интересно спросить у писателей с "і" в 1с (а таких уже насмотрелся), не надоело постоянно переключатся для набора "ПланыСчетов" и "Вибірка"
2 ssh2006
 
21.06.12
16:07
Найти строку в ТЗ можно и без запроса
3 ssh2006
 
21.06.12
16:09
НайтиСтроки(
4 Deenka
 
21.06.12
16:16
запрос то работает. но почему- то создается не три документа, а шесть.
5 ssh2006
 
21.06.12
16:19
(4) Перед

Для Каждого Строкатз3 Из тз3 Цикл

Помести код Сообщить(тз3.Количество());
Огласи результат
6 Defender aka LINN
 
21.06.12
16:23
(1) Есть мнение, что у него раскладка клавиатуры несколько более отличная от русской.
7 Ненавижу 1С
 
гуру
21.06.12
16:29
(6) возможно, но судя по личке у него украинская, а там нет Ы
8 Deenka
 
21.06.12
16:30
6
спасибо! проблема была у свертывании
9 palpetrovich
 
21.06.12
16:32
Якщо <вимога> Тодi
Потуга
<ЩосьРобимо>
Тю
КiнецьПотуги;
КiнецьЯкщо;
ps: ничего личного :)
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn