Имя: Пароль:
1C
 
Как заполнить или подключить обработку к документу "Корректировка записей регистров"?
0 Serg_1960
 
27.11.08
10:46
Кто с эти документом работал - тот поймет :) мне надо или подцепить обработку к ТЧ формы или внешней обработкой заполнить документ. Что легче сделать?
1 Господин ПЖ
 
27.11.08
10:47
я работал, но не понял...
2 Serg_1960
 
27.11.08
10:47
Сорри, забыл сказать :( у меня УПП,- но думаю это не важно...
3 Валерыч
 
27.11.08
10:49
думаю надо напрямую заполнять таблицы движений этого документа
4 Федя Тяпкин
 
27.11.08
10:50
Можно подключить внешнюю обработку заполнения ТЧ. Появляется на вкладке "Заполнение движений", и спомощью нее уже заполнять регистры.
5 Serg_1960
 
27.11.08
10:50
Проблема в том что ТЧ формы создается динамически, - или я не прав? Как тогда в справочнике внешних обработок указать на "эту" ТЧ.
В документе нет нужной мне ТЧ. Где данные "прячутся"? В движениях документа? Сорри, не могу сообразить. Как...
6 Serg_1960
 
27.11.08
10:53
(3) Не корректировал таблицы движений "напрямую" :( не "видел" смысла...
7 Валерыч
 
27.11.08
10:56
а у этого документа, насколько я помню нет табличных частей. Все свои данные он считывает из свих же двжений
8 Федя Тяпкин
 
27.11.08
10:56
В документе есть табличные части "Регистры ...", там добавляешь имя регистра это что - бы он был виден в документе на соответствующей закладке. Движения добавляешь через набор записей. Регистратор этот документ. Кстати сейчас посмотрел внешние чего то не подключается, помню где то так делал или не В УПП или убрали уже или я что-то путаю.
9 Serg_1960
 
27.11.08
11:00
Ага, понял: Движения документа -> ТЧ на форме -> Движения документа
10 Serg_1960
 
27.11.08
11:12
Я правильно думаю: создать документ, заполнить что надо в ТаблицаРегистровБухгалтерии, ТаблицаРегистровНакоплений, ТаблицаРегистрокСведений. Потом записать новый документ с проведением и "заменить" его движения в нужных регистрах. Порядок такой?
11 Zlodey1С
 
27.11.08
11:18
ПРоцедура СоздатьДОкументКорректировки()
   
   ДокументКорректировки = Документы.КорректировкаЗаписейРегистров.СоздатьДокумент();
   ДокументКорректировки.Дата=ТекущаяДата();
   ДокументКорректировки.Комментарий = " - Списание НЗП с пустыми суммами";
   
   ТаблицаЗаказов=ПолучитьЗаказыПоВыпуску_КорректировкаРегистров(Истина,Ложь,Ложь,ДокументКорректировки);
   
   ЗаполнитьМатериалыПоОстаткамНЗП_КорректировкаРегистров(Истина,Ложь,Ложь,ТаблицаЗаказов,ДокументКорректировки, ДокументКорректировки.Движения.НезавершенноеПроизводство, Истина, Истина, Истина, Истина);
   
   НоваяСтрока = ДокументКорректировки.ТаблицаРегистровНакопления.Добавить();
   НоваяСтрока.Имя = "НезавершенноеПроизводство";
   НоваяСтрока.Представление = "Незавершенное производство";
   
   Формачка=ДокументКорректировки.ПолучитьФорму("ФормаДокумента");
   Формачка.Открыть();  
   
КонецПроцедуры
12 Zlodey1С
 
27.11.08
11:19
ДокументКорректировки.Движения.НезавершенноеПроизводство вот здесь указываешь по какому регистру

НоваяСтрока = ДокументКорректировки.ТаблицаРегистровНакопления.Добавить();
   НоваяСтрока.Имя = "НезавершенноеПроизводство";
   НоваяСтрока.Представление = "Незавершенное производство"; а здесь создаешь ТЧ по регистру
13 Salvador Limones
 
27.11.08
11:21
(10) >>> "заменить" его движения в нужных регистрах
Ась? Вот это подробней.
14 Serg_1960
 
27.11.08
11:34
Злодею - спасибо :) Можне мне дальше "тормозить"? А как к ТЧ обратиться? Понятно что имя у ней равно имени регистра (например: "НезавершенноеПроизводство") А вот где эта гадость прячется на форме?
15 Salvador Limones
 
27.11.08
11:39
(14) Вот тебе пример, свертка и зачистка регистра партий бух:

   НовДокКоррЗап=Документы.КорректировкаЗаписейРегистров.СоздатьДокумент();
   НовДокКоррЗап.Дата=ДатаРС;
   ДвиженияКорр=НовДокКоррЗап.Движения;
   
   НовСтрРег=НовДокКоррЗап.ТаблицаРегистровНакопления.Добавить();
   НовСтрРег.Имя="ПартииТоваровНаСкладахБухгалтерскийУчет";
   НовСтрРег.Представление="ПартииТоваровНаСкладахБухгалтерскийУчет";
   ПартииТоваровНаСкладахБухгалтерскийУчетДв=ДвиженияКорр.ПартииТоваровНаСкладахБухгалтерскийУчет;
   НовДокКоррЗап.Записать();
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Организация,
   |    ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Номенклатура,
   |    ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.СчетУчета,
   |    ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Склад,
   |    ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.ДокументОприходования,
   |    ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.ХарактеристикаНоменклатуры,
   |    ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.СерияНоменклатуры,
   |    ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Заказ,
   |    ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Качество,
   |    ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.КоличествоОстаток,
   |    ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.СтоимостьОстаток
   |ИЗ
   |    РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.Остатки(&ВыбПериод, ) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстатки";
   
   Запрос.УстановитьПараметр("ВыбПериод", ДатаРС);
   
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
   
   Пока Выборка.Следующий() Цикл
       СтрПартБух=ПартииТоваровНаСкладахБухгалтерскийУчетДв.Добавить();
       СтрПартБух.Период=ДатаРС;
       СтрПартБух.Регистратор=НовДокКоррЗап.Ссылка;
       СтрПартБух.ВидДвижения=ВидДвиженияНакопления.Приход;
       СтрПартБух.Активность=Истина;
       СтрПартБух.Организация=Выборка.Организация;
       СтрПартБух.Номенклатура=Выборка.Номенклатура;
       СтрПартБух.СчетУчета=Выборка.СчетУчета;
       СтрПартБух.Склад=Выборка.Склад;
       СтрПартБух.ДокументОприходования=Выборка.ДокументОприходования;
       СтрПартБух.ХарактеристикаНоменклатуры=Выборка.ХарактеристикаНоменклатуры;
       СтрПартБух.СерияНоменклатуры=Выборка.СерияНоменклатуры;
       СтрПартБух.Заказ=Выборка.Заказ;
       СтрПартБух.Качество=Выборка.Качество;
       СтрПартБух.Количество=Выборка.КоличествоОстаток;
       СтрПартБух.Стоимость=Выборка.СтоимостьОстаток;
   КонецЦикла;
   ПартииТоваровНаСкладахБухгалтерскийУчетДв.Записать();
   НовДокКоррЗап.Записать();
   
   РегистрыНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.УстановитьИспользованиеИтогов(Ложь);
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ РАЗЛИЧНЫЕ
   |    ПартииТоваровНаСкладахБухгалтерскийУчет.Регистратор
   |ИЗ
   |    РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет КАК ПартииТоваровНаСкладахБухгалтерскийУчет
   |ГДЕ
   |    ПартииТоваровНаСкладахБухгалтерскийУчет.Период < &Период
   |
   |УПОРЯДОЧИТЬ ПО
   |    ПартииТоваровНаСкладахБухгалтерскийУчет.Период";
   
   Запрос.УстановитьПараметр("Период", ДатаРС);
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
   
   НаборЗаписей = РегистрыНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.СоздатьНаборЗаписей();
   Пока Выборка.Следующий() Цикл
       ОбработкаПрерыванияПользователя();
       Сообщить(Выборка.Регистратор);
       НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
       НаборЗаписей.Очистить();
       НаборЗаписей.Записать();
   КонецЦикла;
   РегистрыНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.УстановитьИспользованиеИтогов(Истина);
16 Serg_1960
 
27.11.08
11:42
(15) :) Вы мне сберегли кучу времени! Спасибо!