8.х Из формы документа заполнить таблицу значений в обработке

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем mhl, 3 май 2011.

  1. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Помогите заполнить таблицу значений на форме обработки. Вот код:
    Код:
    НовПодборНоменклатуры = Обработки.НовыйПодборНоменклатуры.ПолучитьФорму();
    НовПодборНоменклатуры.СписокНоменклатуры = ТЗ_Товары;
    НовПодборНоменклатуры.Открыть();
    
    Здесь ТЗ_Товары это таблица значений.
    Форма обработки открывается, но таблица значений пуста, хотя в отладчике показывает имена колонок.
  2. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    вроде как так надо :

    НовПодборНоменклатуры = Обработки.НовыйПодборНоменклатуры.Создать();
    НовПодборНоменклатуры.СписокНоменклатуры = ТЗ_Товары;
    НовПодборНоменклатуры..ПолучитьФорму().Открыть();
  3. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Сделал так:
    Код:
    НовПодборНоменклатуры = Обработки.НовыйПодборНоменклатуры.Создать();
    ФормаПодбораТовара = НовПодборНоменклатуры.ПолучитьФорму();
    ФормаПодбораТовара.СписокНоменклатуры = ТЗ_Товары;
    ФормаПодбораТовара.Открыть();
    
    Тоже самое. В данном случае надо сначала получать форму, а уже потом обращаться к таблице значений иначе система не видит ее вообще.
    Код:
    ФормаПодбораТовара.СписокНоменклатуры = ТЗ_Товары;
    
    Вот так вообще можно одной ТЗ присвоить другую ТЗ?
  4. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    Чтобы одной ТЗ присвоить другую ТЗ, нужно
    Код:
    ТЗ1 = ТЗ.Скопировать();
    
  5. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    все равно не работает:
    Код:
    ДокРозничнаяПродажа = Документы.РозничнаяПродажа.НайтиПоНомеру(НомерДокПродажи);
    Если Не ДокРозничнаяПродажа.Пустая() Тогда
    ТЗ_Товары = ДокРозничнаяПродажа.Товары.Выгрузить();
    
    НовПодборНоменклатуры = Обработки.НовыйПодборНоменклатуры.ПолучитьФорму();
    НовПодборНоменклатуры.ЭлементыФормы.СписокНоменклатуры.Значение = ТЗ_Товары.Скопировать();
    НовПодборНоменклатуры.Открыть();
    КонецЕсли;
    
  6. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    Расскажите поподробнее, что вы хотите этой обработкой сделать?
  7. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Обработка наподобие подбора номенклатуры. На ней помимо всего прочего есть таблица значений. Есть два документа, продажа и возврат. Из документа возврата хочу вызвать эту обработку, заполнить данную ТЗ данными из таб.части документа продажа и уже оттуда занести нужные строки в документ возврат.
  8. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    Хорошо. Теперь про таблицу значений.
    Это реквизит обработки, или только элемент управления формы?
    Колонки уже созданы или создаются программно?
  9. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Это не реквизит обработки. На самом элементе управления колонки не созданы.
  10. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    Тогда попробуйте так:
    Код:
    ДокРозничнаяПродажа = Документы.РозничнаяПродажа.НайтиПоНомеру(НомерДокПродажи);
    Если Не ДокРозничнаяПродажа.Пустая() Тогда
    ТЗ_Товары = ДокРозничнаяПродажа.Товары.Выгрузить();
    
    НовПодборНоменклатуры = Обработки.НовыйПодборНоменклатуры.ПолучитьФорму();
    НовПодборНоменклатуры.ЭлементыФормы.СписокНоменклатуры.Значение = ТЗ_Товары;
    НовПодборНоменклатуры.ЭлементыФормы.СписокНоменклатуры.СоздатьКолонки();   
    НовПодборНоменклатуры.Открыть();
    КонецЕсли;
    
    ТЗ_Товары.Скопировать() в данном случае необязательно.
  11. TopicStarter Overlay
    mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Спасибо выручили.

Поделиться этой страницей