|
Программно заполнить ТЧ корректировки регистров. | ☑ | ||
---|---|---|---|---|
0
Margo93
27.01.22
✎
13:43
|
Всем привет ! Подскажите пожалуйста.
Создаю документ "Корректировка регистров", мне нужно программно заполнить ТЧ его данными запроса. Но как мне в ТЧ этого документа создать строку определенного регистра ? Нужны строки РН "РаспределениеЗапасовДвижения" // Запрос с выборкой // Док = Документы.КорректировкаРегистров.СоздатьДокумент(); Док.Дата = ТекущаяДата(); Док.УстановитьНовыйНомер(""); Док.Операция = Перечисления.ОперацииКорректировкиРегистров.РучнаяКорректировка; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ТЧ = Док.ТаблицаРегистров.Добавить(); ??????????? КонецЦикла; |
|||
1
Ёпрст
27.01.22
✎
13:50
|
(0)
заполнитьЗначенияСвойств(ТЧ,Выборка) Или, еще проще, Док.ТаблицаРегистров.Загрузить(Запрос.Выполнить().Выгрузить()); |
|||
2
Margo93
27.01.22
✎
13:54
|
(1) А как можно без заполнить/загрузить ?
Как по принципу ТЧ документа: Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НС = Док.Товары.Добавить(); НС.Номенклатура = Строка.Номенклатура; НС.КоличествоУпаковок = Строка.Количество; НС.Количество = Строка.Количество; КонецЦикла; |
|||
3
Ёпрст
27.01.22
✎
14:07
|
(2)
Либо так Док.ТаблицаРегистров.Загрузить(Запрос.Выполнить().Выгрузить()); либо так: Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ТЧ = Док.ТаблицаРегистров.Добавить(); ЗаполнитьЗначенияСвойств(ТЧ,ВыборкаДетальныеЗаписи); КонецЦикла; Либо так Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ТЧ = Док.ТаблицаРегистров.Добавить(); ТЧ.Вася = ВыборкаДетальныеЗаписи.Федя; ..... КонецЦикла; |
|||
4
Жан Пердежон
27.01.22
✎
14:10
|
в любой типовой наверное есть такой же или похожий документ
смотри, например, в БП документ ОперацияБух |
|||
5
Margo93
27.01.22
✎
14:12
|
Либо так
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ТЧ = Док.ТаблицаРегистров.Добавить(); ТЧ.Вася = ВыборкаДетальныеЗаписи.Федя; ..... КонецЦикла; А как он поймёт какой регистр ? Поле объекта не обнаружено (Номенклатура) {ВнешняяОбработка.ПравкаЗапасов.Форма.Форма.Форма(41)}: ТЧ.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; |
|||
6
Kassern
27.01.22
✎
14:14
|
(5) блин да создайте вы вручную данный документ и все станет ясно. Посмотрите структуру в конфигурации у этого документа, особенно ТЧ и что там хранится. В общем укажите в ТЧ имена нужных таблиц. Проводки добавляются через Док.Движения.ВашРегистр.ДобавитьПриход/расход()
|
|||
7
Kassern
27.01.22
✎
14:15
|
раз вы в этом не смогли сами разобраться, то пользоваться этим документом для правки учета не советую. Дороже потом будет исправлять.
|
|||
8
Margo93
27.01.22
✎
14:21
|
(6) ТЧ = Док.Движения.РаспределениеЗапасовДвижения.Добавить();
мне вот эта строка и нужна было, благодарю!! (7) Я пожалуй попробую) |
|||
9
АгентБезопасной Нацио
27.01.22
✎
14:24
|
(7) "граната для обезъянки"© Ёпрст
(5) нет у коррктировки ТЧ. надо записать док корректировки, а затем пейсать сразу в регистр (через менеджер записи или набор записей), подчиняя записи этому доку... |
|||
10
Margo93
27.01.22
✎
14:51
|
Докуент создается, но ТЧ пустая((
///Запрос - Док = Документы.КорректировкаРегистров.СоздатьДокумент(); Док.Дата = КонецДня(Дата("20220125")); Док.УстановитьНовыйНомер(""); Док.Операция = Перечисления.ОперацииКорректировкиРегистров.РучнаяКорректировка; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ТЧ = Док.Движения.РаспределениеЗапасовДвижения.Добавить(); ТЧ.ДатаПоступления = КонецДня(Дата("20220125")); ТЧ.Активность = ИСТИНА; ТЧ.Период = КонецДня(Дата("20220125")); ТЧ.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; ТЧ.Склад = ВыборкаДетальныеЗаписи.Склад; ТЧ.Сторно = Ложь; ТЧ.ИгнорироватьРезервыПриКонтролеОстатков = Ложь; КонецЦикла; Док.Записать(РежимЗаписиДокумента.Запись); |
|||
11
Kassern
27.01.22
✎
14:54
|
(10) вам точно нельзя пользоваться этим документом)) А для чего, как вы думаете, у этого документа есть табличная часть "ТаблицаРегистров" с реквизитом имя?
|
|||
12
Kassern
27.01.22
✎
14:55
|
(10) "Посмотрите структуру в конфигурации у этого документа, особенно ТЧ и что там хранится" вот это я для кого писал?)
|
|||
13
Kassern
27.01.22
✎
14:56
|
"ТЧ = Док.Движения.РаспределениеЗапасовДвижения.Добавить();" - это не ТЧ! Здесь нет никакого обращения к табличной части. Вы создаете движение в определенной таблице движений.
|
|||
14
Dmitrii
гуру
27.01.22
✎
14:57
|
ОФФ. А Margo93 - оказывается мужик. Расходимся парни.
|
|||
15
Kassern
27.01.22
✎
14:59
|
(14) по умолчанию создается акк мужского рода, скорее всего дело в этом.
|
|||
16
Nolan
27.01.22
✎
15:02
|
Корректировка = Документы.КорректировкаРегистров.СоздатьДокумент();
Корректировка.ТаблицаРегистров.Добавить().Имя = "ТоварыКПоступлению"; Вот так сделай еще |
|||
17
Nolan
27.01.22
✎
15:04
|
Корректировка.Движения.ТоварыКПоступлению.Записывать = Истина;
|
|||
18
Kassern
27.01.22
✎
15:14
|
(17) у нее ТЧ не заполнено, поэтому на форме нужная таблица проводок не выводится
|
|||
19
Margo93
27.01.22
✎
15:58
|
(11) Не знаю))
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ТЧ = Док.ТаблицаРегистров.Добавить(); ТЧ.Имя = "РаспределениеЗапасовДвижения"; КонецЦикла; И как мне теперь заполнять движения ? ( |
|||
20
Margo93
27.01.22
✎
16:02
|
пока остановилась на этом)
Док = Документы.КорректировкаРегистров.СоздатьДокумент(); ТЧ = Док.ТаблицаРегистров.Добавить(); ТЧ.Имя = "РаспределениеЗапасовДвижения"; Док.Дата = КонецДня(Дата("20220125")); Док.УстановитьНовыйНомер(""); Док.Операция = Перечисления.ОперацииКорректировкиРегистров.РучнаяКорректировка; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Движение = Док.Движения.РаспределениеЗапасовДвижения.Добавить(); ////ТЧ = Док.Движения.РаспределениеЗапасовДвижения.Добавить(); Движение.ДатаПоступления = КонецДня(Дата("20220125")); ТЧ.Активность = ИСТИНА; ТЧ.Период = КонецДня(Дата("20220125")); ТЧ.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; ТЧ.Склад = ВыборкаДетальныеЗаписи.Склад; ТЧ.Сторно = Ложь; ТЧ.ИгнорироватьРезервыПриКонтролеОстатков = Ложь; КонецЦикла; |
|||
21
Margo93
27.01.22
✎
16:05
|
Заработало ! пошла взрывать гранату))
///Запрос - Док = Документы.КорректировкаРегистров.СоздатьДокумент(); ТЧ = Док.ТаблицаРегистров.Добавить(); ТЧ.Имя = "РаспределениеЗапасовДвижения"; Док.Дата = КонецДня(Дата("20220125")); Док.УстановитьНовыйНомер(""); Док.Операция = Перечисления.ОперацииКорректировкиРегистров.РучнаяКорректировка; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Движение = Док.Движения.РаспределениеЗапасовДвижения.Добавить(); ////ТЧ = Док.Движения.РаспределениеЗапасовДвижения.Добавить(); // Движение.ДатаПоступления = КонецДня(Дата("20220125")); Движение.Активность = ИСТИНА; Движение.Период = КонецДня(Дата("20220125")); Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура; Движение.Склад = ВыборкаДетальныеЗаписи.Склад; Движение.Сторно = Ложь; Движение.ИгнорироватьРезервыПриКонтролеОстатков = Ложь; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |