Имя: Пароль:
1C
1С v8
Процедура ПриКопировании(ОбъектКопирования) заполнение табличной части
0 anagk
 
16.06.22
09:40
Приветствую ГУРУ!!!)
Задача возможно проста, но второй день на месте. Не работает. При копировании предыдущего документа, нужно чтобы в табличнуй часть попали данные из другого столбика. Пример в первом доке в табличн.части есть Текущие показатели . При создании Нового дока, методом копирования, переносим все как есть, кроме того, что Ткещие данные должны попасть в поле Предыдущие даные.
Процедура ПриКопировании(ОбъектКопирования)
        Для Каждого СтрокаТабличнойЧасти Из Продукция Цикл    
        ЭтотОбъект.Продукция.Строка.Кол_Р = ОбъектКопирования.Строка.Продукция.Кол_П;
    КонецЦикла;    
КонецПроцедуры
1 Asmody
 
16.06.22
09:46
ЭтотОбъект.Продукция.Очистить();
Для Каждого стрПродукция Из ОбъектКопирования.Продукция Цикл
   новСтрокаПродукция = ЭтотОбъект.Продукция.Добавить();    
   ЗаполнитьЗначенияСвойств(
      новСтрокаПродукция,
      стрПродукция,
      , "Кол_Р, Кол_П"
   );
   новСтрокаПродукция.Кол_Р = стрПродукция.Кол_П;
КонецЦикла;
2 Ненавижу 1С
 
гуру
16.06.22
09:47
(0) вопросов больше чем ответов
1. итерируете вы какую коллекцию?
2. Что такое Строка?
3. Почему в одном месте Продукция.Строка, а в другом Строка.Продукция?
3 anagk
 
16.06.22
09:55
(1) АФИГЕТЬ!!! СПАСИБО!!!!!)))ОГРОМНОЕ!!!
4 anagk
 
16.06.22
09:57
(2) просто это уже сотый вариант, достучаться к табличной части...) и так и так крутил. СПАСИБО Asmody  - внес в код - все работает)))
5 Asmody
 
16.06.22
09:58
Я сегодня сам не свой - даю готовые ответы, а не вожу мордой по конфигуратору.
Пользуйтесь.
6 anagk
 
16.06.22
10:05
есть еще один вопрос, практически на эту же тему) (пожалуйста)
Задача та же, но более по-умному. Не копировать с предыдущего документа и переносить столбики, а напрямую получать из (Я создал) РегистрПоказатели, последний по дате показатель.
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    РегистрПоказателиСрезПоследних.Номенклатура КАК Номенклатура,
        |    РегистрПоказателиСрезПоследних.Кво_П КАК Кво_П
        |ИЗ
        |    РегистрСведений.РегистрПоказатели.СрезПоследних КАК РегистрПоказателиСрезПоследних";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    

число из регистра должно попасть из Процедуры ПродукцияНоменклатураПриИзменении(Элемент) в Строку табличной части в поле Кол_Р
7 Kassern
 
16.06.22
10:06
(6) Стаж: 12 лет 4 месяца 1 день  - серьезно?
8 Kassern
 
16.06.22
10:07
А где у вас параметры в запросе? Или вам вся таблица этого регистра нужна?
9 Kassern
 
16.06.22
10:08
Вы получили выборку, ну так получите элементы выборки и запихните куда вам нужно
10 anagk
 
16.06.22
10:17
(7) много работы, не успеваю переключиться
11 anagk
 
16.06.22
10:18
(7) та и сюда пишу раз в год, когда "заклинило" - и всегда здесь "воошебным пендюлем" помогают))
12 Мультук
 
гуру
16.06.22
10:31
(11)

Может проще сменить работу, съездить в отпуск ?
Если у вас в 10-00 уже не работает голова -- это очень плохой сигнал.

Тем более что этот код можно/нужно уметь писать в полном автопилоте.
13 Asmody
 
16.06.22
10:43
(6)
1) СрезПоследних в данном случае надо получать на дату.
2) из документа-источника номенклатуру надо выгрузить в массив и сделать по нему отбор в СрезПоследних
3) результат запроса в конкретном случае лучше выгрузить в ТЗ, по ней искать удобнее
4) при добавлении строки в документ ищем номенклатуру в ТЗ, берем из строки Кол_П

ПС: Кода не будет
14 Kassern
 
16.06.22
10:47
(13) пропал запал?))
15 anagk
 
16.06.22
11:03
(14) думу думаю. Все таки хочу получить число из Регистра. Щас сделаю)
16 Asmody
 
16.06.22
11:04
(14) уже с юзерами пообщался. теперь я сам свой
Программист всегда исправляет последнюю ошибку.