8.х УФ:Передать табличную часть обработки на форму.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем TerANik, 22 дек 2015.

  1. TopicStarter Overlay
    TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Коллеги доброго дня. Суть вопроса в следующем.

    Есть код:

    Код:
    ПараметрыФормы = Новый Структура("АдресТоваровВХранилище", СтруктураПараметровКлиента.ВыборТоваров);
            ПараметрыФормы = ДобавитьТаблицуТоваровВПараметры(ПараметрыФормы);
            Режим = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
            ОткрытьФорму("Обработка.медАРМПриёмкиТовара.Форма.ВыборНоменклатуры", ПараметрыФормы,,,,, ОбработчикОповещения, Режим);
            ОткрытаБлокирующаяФорма = Истина;
    
    ПараметрыФормы = ДобавитьТаблицуТоваровВПараметры(ПараметрыФормы);
    Это уже добавил я. Вот код функции

    Код:
    &НаСервере
    Функция ДобавитьТаблицуТоваровВПараметры(ПараметрыОтбора)
        ПараметрыОтбора.Вставить("ТоварыДокумента",Объект.СписокПриёмка.Выгрузить());   
        Возврат ПараметрыОтбора;
    КонецФункции
    
    Добавляем в структуру параметр формы, открываем..
    И при создание на сервере происходит следующее
    Код:
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
       
        // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
        Если Параметры.Свойство("АвтоТест") Тогда
            Возврат;
        КонецЕсли;
       
        ДополнительныеКолонкиНоменклатуры = ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты("ДополнительнаяКолонкаПриОтображенииНоменклатуры");
       
        ТаблицаТоваров.Загрузить(ПолучитьИзВременногоХранилища(Параметры.АдресТоваровВХранилище));
    
    В последней строке падает в ошибку.. Несоответствие параметра 1.

    Если я комментирую добавленную мною строку всё нормально.. Адрес при передаче не меняется. Но ПолучитьИзВременногоХранилища возвращает неопределенно. .


    Куда рыть?
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    А в хранилище разве не в двоичных данных хранятся данные?
  3. TopicStarter Overlay
    TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Вопрос в другом...в параметрах формы хранится адрес данных.. и данные получаются.
    Но как только в параметры формы(структура) добавляю еще одно значение получать перестаёт.
    --- Объединение сообщений, 22 дек 2015 ---
    А вообще может я нуб.. Задача следующая.
    Есть табличная часть обработки. Она же выведена на основную форму..
    Сканируют товар, подбирается вся номенклатура с данным штрих-кодом (как факт одна позиция и несколько характеристик).
    И открывается форма выбора характеристики которая нужна.
    Необходимо в форме выбора позиционироваться на той характеристике которая есть в табличной части обработки..
    --- Объединение сообщений, 22 дек 2015 ---
    Т.е. Найденные позиции она выгружает во временное хранилище и получает при создании на сервере, мне надо в эту форму передать Табличную часть обработки и получить запросом данные.
    Последнее редактирование: 22 дек 2015
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Эээ.....характеристики так же штрихкодируются, если не штрихкодированы, то почему нельзя использовать типовой выбор элемента?

    Я пока не совсем понимаю, для чего все эти извращения.
  5. TopicStarter Overlay
    TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    1) Штрих код есть на изделие, характеристики это серии .. но на каждую характеристику не клеится штрих-код,т.е. на все характеристики один штрих код.
    2) Есть табличная часть, товара который отгрузил поставщик
    3) Приёмщик сканирует, находится (Н-ое количество характеристик) и открывается обработка выбора той что надо.
    4) Приёмщик должен сравнить реальную характеристику (серию) с тем что отгрузил поставщик.. но у него открывается несколько, соответсвено я хочу, позиционировать на той которая в накладной.
    5) Для этого надо передать табличную часть накладно и при создании на сервере слепить две таблицы и позиционировать на нужну. При попытке добавления первая таблица из хранилища становится неопределена.

    может тоже надо передавать через временное хранилище?
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Пока не понятно, зачем используется ВременноеХранилище. Информация в нем по адресу хранится до следующего вызова сервера.
    Позиционирование можно поиском по ТЗ организовать, если у тебя формируется список всех возможных характеристик после сканирования.
    Последнее редактирование: 22 дек 2015
  7. TopicStarter Overlay
    TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Ну передаётся ясно лошадь раз с рогами ТЗ. Там же написано что Выгрузить.
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Юзер находится в документе, нажимает кнопу и открывает форму для сканирования, так?
    При сканировании, в открытую форму вываливаются все возможные варианты характеристик для номенклатуры, так?
    Если юзер сосканировал номенклатуру, которой нет в ТЧ документа, что происходит?
  9. TopicStarter Overlay
    TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Добавляет её в документ. Проблема и суть не в этом и она решена..

    В структуру добавлялся адрес временного хранилища, без указания второго параметра, уникального идентификатора

    СтруктураПараметровКлиента.Вставить("ВыборТоваров", ПоместитьВоВременноеХранилище(ТаблицаТоваров));
    В связи с этим, при вызове серверной функции
    ПараметрыФормы = ДобавитьТаблицуТоваровВПараметры(ПараметрыФормы);
    Временное хранилище очищает данные..
    При комментировании всё работало нормально..
    Вылечил таким образом.

    СтруктураПараметровКлиента.Вставить("ВыборТоваров", ПоместитьВоВременноеХранилище(ТаблицаТоваров, Новый УникальныйИдентификатор));
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Все равно пока не понятно, зачем тебе временное хранилище, почему нельзя сделать ТЗ как реквизит формы и напрямую с ним работать?
  11. TopicStarter Overlay
    TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Потому что ТЗ получается из другой формы.

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