Имя: Пароль:
1C
1С v8
8.2. БГУ как оптимизировать
0 студень
 
24.11.12
15:21
Добрый день, ув. 1сники! подскажите пожалуйста в таком вопросе:
имеется таблица значений(тз), в которой хранятся строки табличной части документа "ОперацияБух". при автоматическом создании документа ОперацияБух, идет проверка - есть ли в базе в документах строчка с таким номером, если есть - изменяется. Все делается через цикл. как правильно организовать проверку и изменение через запрос? код прилагаю
для каждого строка из тз цикл  
   
   СтараяБухСправка=Документы.ОперацияБух.Выбрать(строка.дата,строка.дата);
   пока СтараяБухСправка.Следующий() цикл
       ДокОбъект =СтараяБухСправка.ПолучитьОбъект();  
       
       НаборЗаписей =ДокОбъект.Движения.епсбу;                
       НаборЗаписей.Прочитать();
       
       Для Каждого ИскомаяСтрока ИЗ НаборЗаписей Цикл
           если найти(ИскомаяСтрока.Содержание,"##"+строка.номер+"##")>0 тогда
               ИзменениеПроводки(ДокОбъект,ИскомаяСтрока, строка);
           конецесли;
       КонецЦикла;
       ДокОбъект.Записать();
       
   КонецЦикла;
   
конеццикла;
1 Нуф-Нуф
 
24.11.12
15:22
запрос
2 студень
 
24.11.12
15:30
я делаю так:


  СтараяБухСправка=Документы.ОперацияБух.Выбрать(строка.дата,строка.дата);
   пока СтараяБухСправка.Следующий() цикл
       ДокОбъект =СтараяБухСправка.ПолучитьОбъект();  
       
       запрос=новый запрос;
               запрос.Текст=
               "ВЫБРАТЬ
               |    ЕПСБУ.Период,
               |    ЕПСБУ.Регистратор,
               |    ЕПСБУ.СчетДт,
               |    ЕПСБУ.СчетКт,
               |    ЕПСБУ.Учреждение,
               |    ЕПСБУ.Сумма,
               |    ЕПСБУ.Содержание,
               |ИЗ
               |    РегистрБухгалтерии.ЕПСБУ КАК ЕПСБУ
               |ГДЕ
               |    ЕПСБУ.Регистратор = &Регистратор";
               
               запрос.УстановитьПараметр("Регистратор",ДокОбъект);
               результат=запрос.Выполнить();
       
       Для Каждого ИскомаяСтрока ИЗ результат Цикл
           если найти(ИскомаяСтрока.Содержание,"##"+строка.номер+"##")>0 тогда

               ИзменениеПроводки(ДокОбъект,ИскомаяСтрока, строка);
           конецесли;
       КонецЦикла;
       ДокОбъект.Записать();
       
   КонецЦикла;
   
конеццикла;
3 студень
 
24.11.12
15:30
ругается, что нельзя выбрать из "Результат"
4 ale-sarin
 
24.11.12
15:33
(3) Потому что "Результат" - это результат запроса, а не таблица значений.
5 Нуф-Нуф
 
24.11.12
15:34
ыыыыыы
6 ale-sarin
 
24.11.12
15:34
+4 И еще в параметр запроса на ссылку передать, а не объект.
7 студень
 
24.11.12
15:35
(4) вот вот. а как правильно сделать, чтобы он изменил проводку?
8 ale-sarin
 
24.11.12
15:36
(7) Самому искать в типовых.