Имя: Пароль:
1C
1С v8
как "дописывать" в движения корректировки в цикле
0 pilot_iv
 
03.10.11
08:42
в цикле формирую ТЗ, которую надо "дописывать" в движения коооректировки
записи регистров..как ее правильно дописать, а то получается что на каждой итерации ТЗ формируется нормально , но в движения записываются только последняя итерация

цикл----
------- запрос
                     
   ТаблицаПартий = Запрос.Выполнить().Выгрузить();
   ДокументОбъект = ДокументКорректировка.ПолучитьОбъект();
   НаборЗаписейБУ = ДокументОбъект.Движения.ПартииТоваровНаСкладахБухгалтерскийУчет;
   НаборЗаписейБУ.Загрузить(ТаблицаПартий);
   НаборЗаписейБУ.Записать();
КонецЦикла----
1 Maxus43
 
03.10.11
08:52
Правильно, НаборЗаписейБУ.Загрузить(ТаблицаПартий); - стирает старые, добавляет только эти.
цикл по ТЗ делай с ДокументОбъект.Движения.Добавить() и ЗаполнитьЗначенияСвойств
2 ASU_Diamond
 
03.10.11
08:55
попробуй
   НаборЗаписейБУ.Записать(Ложь);
но не уверен что сработает с загрузкой
3 Maxus43
 
03.10.11
08:57
угу, не сработает... в запросе к менеджеру ВТ нельзя прикрутить чтоб итерации "копились" и потом всё одним махом записать?
4 Адинэснег
 
03.10.11
09:00
------- запрос
 ТаблицаПартий = Запрос.Выполнить().Выгрузить();
 ДокументОбъект = ДокументКорректировка.ПолучитьОбъект();
цикл----
Для каждой строка из ТаблицаПартий  Цикл
                     
  строка = Движения.ПартииТоваровНаСкладахБухгалтерскийУчет.Добавить;
   
   //НаборЗаписейБУ = ДокументОбъект.Движения.ПартииТоваровНаСкладахБухгалтерскийУчет;
  // НаборЗаписейБУ.Загрузить(ТаблицаПартий);
 
КонецЦикла----
НаборЗаписейБУ.Записать();
5 Адинэснег
 
03.10.11
09:01
*движение = Движения.ПартииТоваровНаСкладахБухгалтерскийУчет.Добавить;
6 Maxus43
 
03.10.11
09:02
и да,     ДокументОбъект = ДокументКорректировка.ПолучитьОбъект();
в цикле - тоже шедеврально)
7 ASU_Diamond
 
03.10.11
09:05
(3) а причём тут менеджер ВТ?
8 Maxus43
 
03.10.11
09:07
(7) от задачи зависит, поидее можно извратится и в одну таблицу результат всех итерацуий записать... хотя наверно промежуточные данные нужны для расчета... тогда ВТ не поможет
9 ASU_Diamond
 
03.10.11
09:19
(8) ну можно в одну ТЗ все результаты запросов сделать, но ВТ тут причём? разве в запросе можно изменять значения ВТ?
10 Maxus43
 
03.10.11
09:21
>>разве в запросе можно изменять значения ВТ?
а для чего ещё ВТ? одну и ту же ВТ можно использовать в разных запросах и т.д. что даёт пространство для манёвров
11 ASU_Diamond
 
03.10.11
09:27
(10) напиши мне пример запроса в котором происходит корректировка ВТ
12 Maxus43
 
03.10.11
09:28
(11) что значит корректировка?
13 ASU_Diamond
 
03.10.11
09:37
(12) а ты о чём писал? смотрим:
(3) "в запросе к менеджеру ВТ нельзя прикрутить чтоб итерации "копились""
(10) ">>разве в запросе можно изменять значения ВТ?
а для чего ещё ВТ?"
14 Maxus43
 
03.10.11
09:50
ВЫБРАТЬ
   Банки.Код,
   Банки.Наименование
ПОМЕСТИТЬ втИсходная
ИЗ
   Справочник.Банки КАК Банки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   втИсходная.Код,
   втИсходная.Наименование
ПОМЕСТИТЬ втАгрегирующая
ИЗ
   втИсходная КАК втИсходная

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   Банки.Код,
   Банки.Наименование
ИЗ
   Справочник.Банки КАК Банки
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ втИсходная
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   втАгрегирующая.Код,
   втАгрегирующая.Наименование
ПОМЕСТИТЬ втИсходная
ИЗ
   втАгрегирующая КАК втАгрегирующая
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   втИсходная.Код,
   втИсходная.Наименование
ИЗ
   втИсходная КАК втИсходная

:))
15 ASU_Diamond
 
03.10.11
11:02
(14) не путаем корректировку с заменой, это во-первых
во-вторых ничего не изменяется в результате, в ВТ получаем ту же таблицу.
16 Maxus43
 
03.10.11
11:14
(15) как не изменилось? таблица таже но записей в 2 раза больше)