8.х Автозаполнение формы

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

  1. TopicStarter Overlay
    Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    Здавствуйте! Возникла следующая загвоздка. Есть справочник номенклатура, справочник КодТНВЭД, в основной форме номенклатуры сделал соответствующее поле КодТНВЭД.
    Есть документ перемещение товаров, ввел новую колонку КодТНВЭД нужно сделать, чтобы после выбора номенклатуры автоматически выбиралось поле КодТНВЭД из справочника Номенклатура.
    Затем этот пункт добавить колонкой в печатную форму.
    тут Столкнулся тут с похожей темой, что-то не получается :(
    Конфигурация УТ 10.3.6.8,
    Заранее благодарен
  2. Оберон
    Offline

    Оберон

    Регистрация:
    24 июл 2006
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    пока что все верно..
    наверное не выбиралось, а заполнялось при выборе номенклатуры?
    смотря как отчет сделан опиши хоть что за отчет делаешь..
  3. TopicStarter Overlay
    Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    Если делаю привязку справочника КодТНВЭД к справочнику номенклатура (задаю владельца), то при вводе данных в справочник не отображается иерария групп, группа видится как обычный элемент.
    Основная цель - чтобы в документе перемещение заполнение кода шло автоматом из соответствующей позиции номенклатуры, далее будет печатная форма где будут код по базе, артикул, код ТНВЭД, наименование и количество.
  4. Оберон
    Offline

    Оберон

    Регистрация:
    24 июл 2006
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    делай колонку в документе с кодом и в процедуре выбора номенклатуры самой последней строчкой присваивай кодТНВЭД из номенклатуры типа докум.ТабличнаяЧасть.КодТНВЭД = Номенклатура.кодТНВЭД
  5. TopicStarter Overlay
    Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    После небольшого редактирования предложенного кода все получилось, большое спасибо :)
    Бьюсь со вторым этапом: надо к стандартной форме ПеремещениеТоваров прикрутить дополнительную колонку КодТНВЭД. Место для этого создал, по аналогии с соседними ячейками ставлю макет: заполнение параметр, Параметр - КодТНВЭД. После выведения нужная колонка пустая. Насколько понимаю, поле КодТНВЭД не прописан в параметрах печатной формы, как это сделать?
  6. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Найти в модуле документа в процедуре печати строки заполнения параметров области и туда дописать. Ищите что-то типа
    Код:
    Если ПараметрыПечати.ВыводитьКоды Тогда
    ОбластьКодов.Параметры.Заполнить(ПараметрыПозиции);
    // вот например так
    ОбластьКодов.ВашЧудоКод = ЗначениеЧудоКода;
    ТабДокумент.Присоединить(ОбластьКодов);
    КонецЕсли;
    
    
  7. TopicStarter Overlay
    Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    Код:
    Если ПараметрыПечати.ВыводитьКоды Тогда
    ОбластьКодов.КодТНВЭД.Значение(КодТНВЭД);
    ТабДокумент.Присоединить(ОбластьКодов);
    
    Так ошибок нет, но в перемещении выдает ошибку при попытке сформировать
    Код:
    {Документ.ПеремещениеТоваров(374)}: Поле объекта не обнаружено (КодТНВЭД)
    ОбластьКодов.КодТНВЭД.Значение(КодТНВЭД);
    
    Если сделать как вы советовали, выдает ошибку
    Код:
    {Документ.ПеремещениеТоваров(373,38)}: Переменная не определена (ПараметрыПозиции)
    ОбластьКодов.Параметры.Заполнить(<<?>>ПараметрыПозиции);
    
    Что я делаю не так? :unsure:
  8. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Вам же 1С сказала что Вы делаете не так

    Переменная с именем "ПараметрыПозиции" не определена.
    На основании переменной выполняется заполнение макета, сравнение полей ведется по их именам.

    Найдите как правильно называется ваша переменная, она должна быть получена из запроса, в котором выбираются данные для заполнения печатной формы.
    В запросе необходимо добавить свою переменную с именем идентичным имени установленным в макете.

    ПРИМЕР:
    Параметры макета:
    <Номенклатура> <Цена> <Количество>
    Запрос:
    Код:
    ВЫБРАТЬ
    Таблица.Номенклатура КАК Номенклатура,
    Таблица.Стоимость КАК Цена,
    Таблица.Количество КАК Количество
    
    Параметры = Запрос.Выполнить().Выбрать();
    // Прописываете получение и вывод тех либо иных областей
    ОбластьМакета.параметры.Заполнить(Параметры); //заполняет параметры макета по данным запроса, сравнивая поля по именам
    // Дописываете подвал, ну и т.д.

    Удачи!!!

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