Имя: Пароль:
1C
1С v8
Обработка "ОтражениеЗарплатыВРеглУчете"
, ,
0 ZADR
 
03.03.14
12:56
Здравствуйте, есть документ "ОтражениеЗарплатыВРеглУчете", там есть ТЧ "ОтражениеВУчете".
Надо сделать обработку с циклом, чтобы из этой ТЧ выбирал один реквизит "СчетКТ" и менял его значение на другое...
Помогите с кодом...
Вот код который у меня сейчас есть:

выбрать1 = документы.ОтражениеЗарплатыВРеглУчете.Выбрать(Дата1, КонецДня(Дата2));
Пока выбрать1.Следующий() Цикл
...
КонецЦикла;
1 Cube
 
03.03.14
12:59
(0) Семерошник... :)
2 kosts
 
03.03.14
13:00
(0) Вот тебе еще кусочек кода

Если т.СчетКТ = выбСчетКТ Тогда
    т.СчетКТ = выбСчетКТ2;
КонецЕсли;
3 Любопытная
 
03.03.14
13:00
ну это ты вроде как выборку документов организовал, теперь тебе у каждого элемента выборки надо получить объект, у каждого объекта таб. часть и в каждой строке таб части поменять СчетКТ.
И не забыть после этого записать объект
4 Плот
 
03.03.14
13:02
(0) а по каким условиям ты собрался менять? Если тупо подставить то можно сделать и с помощью Групповой обработки
5 Cube
 
03.03.14
13:02
(0) Если это для расчетчика, то делай внешнюю обработку табличной части.

Ну и в любом случае покури метод НайтиСтроки()...
6 ZADR
 
03.03.14
13:06
сейчас значение "СчетКТ" равен "Я32", а надо на "3220 поменять...
7 vladko
 
03.03.14
13:06
(0) хотя бы так, раз уж начал выборкой:
выбрать1 = документы.ОтражениеЗарплатыВРеглУчете.Выбрать(Дата1, КонецДня(Дата2));
Пока выбрать1.Следующий() Цикл
Док = выбрать1.ПолучитьОбъект();
Для Каждого СтрТЧ ИЗ Док.ОтражениеВУчете Цикл
  Если СтрТЧ.СчетКТ = <условие> Тогда
   СтрТЧ.СчетКТ = ....;
   ...здесь реквизиты субконто изменяются...
  КонецЕсли;
КонецЦикла;
Док.Записать(РежимЗаписиДокумента.Запись);
Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
КонецЦикла;
8 kosts
 
03.03.14
13:09
(7)

Док.Записать(РежимЗаписиДокумента.Запись);
Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);

Зачем 2 раза запись?
9 bse
 
03.03.14
13:13
(8) контрольный
10 ZADR
 
03.03.14
13:16
выбрать1 = документы.ОтражениеЗарплатыВРеглУчете.Выбрать(Дата1, КонецДня(Дата2));
     Пока выбрать1.Следующий() Цикл
            Док = выбрать1.ПолучитьОбъект();
                Для Каждого СтрТЧ ИЗ Док.ОтражениеВУчете Цикл
                         Если СтрТЧ.СчетКТ = "Я32" Тогда
                                СтрТЧ.СчетКТ = "3220";
                                //...здесь реквизиты субконто изменяются...
                           КонецЕсли;
                КонецЦикла;
           Док.Записать(РежимЗаписиДокумента.Запись);
           Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
    КонецЦикла;

Обработка находит строки с значением "Я32" но не меняет на 3220, что делать? )
11 Cube
 
03.03.14
13:18
(10) А ты тип реквизита СчетКт смотрел? Пытаешься засунуть квадратное в круглое отверстие и удивляешься... :)
12 ZADR
 
03.03.14
13:22
Все работает:

выбрать1 = документы.ОтражениеЗарплатыВРеглУчете.Выбрать(Дата1, КонецДня(Дата2));
Я32 = ПланыСчетов.Типовой.НайтиПоКоду("Я32");
Я3220 = ПланыСчетов.Типовой.НайтиПоКоду("3220");                
     Пока выбрать1.Следующий() Цикл
            Док = выбрать1.ПолучитьОбъект();
                Для Каждого СтрТЧ ИЗ Док.ОтражениеВУчете Цикл
                         Если СтрТЧ.СчетКТ = Я32 Тогда
                                СтрТЧ.СчетКТ = Я3220;
                                //...здесь реквизиты субконто изменяются...
                           КонецЕсли;
                КонецЦикла;
           Док.Записать(РежимЗаписиДокумента.Запись);
           Док.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
    КонецЦикла;
13 ZADR
 
03.03.14
13:23
Всем большое спасибо!
14 Турист
 
03.03.14
13:23
(0) а обработкой "групповая обработка справочников и документов" принципиально не пользуемся? ))
15 ZADR
 
03.03.14
13:24
(14) а разве там есть такое чтобы поменять значение? )) там же просто провести,удалить и так далее... )))
16 Турист
 
03.03.14
13:26
(15) можно )) как раз для этого и создана )) чтобы не писать на каждую херню обработки по смене реквизитов
17 Cube
 
03.03.14
13:26
(15) Меню -> Настройка -> Разрешить изменение реквизитов объектов.
18 ZADR
 
03.03.14
13:33
Все спасибо Вам, теперь буду знать)))
AdBlock убивает бесплатный контент. 1Сергей