8.х Дополнительные внешние печатные формы (Справочник Номенклатура)

Тема в разделе "Установка платформы "1С:Предприятие 8"", создана пользователем Grumax, 8 дек 2016.

  1. TopicStarter Overlay
    Grumax
    Offline

    Grumax

    Регистрация:
    8 дек 2016
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Стоит задача сформировать значение поля Артикул, по определенной маске. Делаю на основе внешней печатной формы вызов своей формы. Проблема заключается в том, что я не могу понять как обратиться к ещё не записанной карточке номенклатуры. СсылкаНаОбъект тот же СправочникСсылка.Номенклатура, но у этой ссылке нет методов ПолучитьОбъект() и ПолучитьФорму(), а вот когда карточка записана, то всё работает...
    Код:
    #Если Клиент Тогда
    
    Функция Печать() Экспорт
       
        Попытка
        //Получаем по ссылке объект
            ТекОбъект = СсылкаНаОбъект.ПолучитьОбъект();
        //Определяем записан ли Элемент в базу
            Если ТекОбъект.ЭтоНовый() Тогда
                ФормаОбъекта = ТекОбъект;
            Иначе   
        //Элемент записан в базу, тогда берем по ссылке форму
                ФормаОбъекта = СсылкаНаОбъект.ПолучитьФорму("ФормаЭлемента");
        //Форма открыта, но проверка не лишняя
                Если не ФормаОбъекта.Открыта() Тогда
                    ФормаОбъекта.Открыть();   
                КонецЕсли;
            КонецЕсли;
        //Запуск формы для формирования Артикула по маске и в зависимости от группы
            фрмФорма    = ЭтотОбъект.ПолучитьФорму("ФормаАртикул");
            стрАртикул    = фрмФорма.ОткрытьМодально();
        //Полученный артикул передаем в форму, далее пользователь записывает её и закрывает
            ФормаОбъекта.Артикул    = стрАртикул;
    
       
        Исключение
        //Когда нажимает кнопку "Добавить", не могу получить объект, просим пользователя снаячала записать карточку с любым артикулом
            Сообщить("Запишите карточку Номенклатуры перед формированием Артикула");
       
        КонецПопытки;    
    
    КонецФункции // Печать()
    
    #КонецЕсли
    
  2. web.num
    Offline

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

    Регистрация:
    6 окт 2011
    Сообщения:
    932
    Симпатии:
    5
    Баллы:
    29
    подписка на событие - перед записью например - параметр входящий "Источник" - это объект который еще не записан, у него нет ссылки, там делать.
    --- Объединение сообщений, 8 дек 2016 ---
    Где сформировать то надо? в печатной форме?
  3. TopicStarter Overlay
    Grumax
    Offline

    Grumax

    Регистрация:
    8 дек 2016
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    нужно из внешней печатной формы передать Переменную для Поля ввода: Артикул, когда добавляется новая запись справочника.
    Форма элемента открыта на экране, как в неё обратиться :(
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.599
    Симпатии:
    876
    Баллы:
    204
    Вы ж каким-то образом из внешней печатной формы формируете новый элемент справочника - там и передавайте.

    Вам для этого форма элемента абсолютно не нужна.
  5. TopicStarter Overlay
    Grumax
    Offline

    Grumax

    Регистрация:
    8 дек 2016
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Я не формирую новый элемент сам, я только передаю данные для реквизита. Создается/открывается стандартными средствами, а когда открыт уже через кнопку "Печать" запускается внешняя печатная форма. Вот когда номенклатура записана, я вижу форму, а когда только добавлена, нет..
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.599
    Симпатии:
    876
    Баллы:
    204
    Начнем с того, что формирование артикула нужно делать либо в подписке на событие "ПередЗаписью", либо в одноименной предопределенной процедуре модуля объекта.
  7. TopicStarter Overlay
    Grumax
    Offline

    Grumax

    Регистрация:
    8 дек 2016
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Я не хочу лезть в конфигурацию, поэтому и пошел по этому пути.
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.599
    Симпатии:
    876
    Баллы:
    204
    Это тупиковый путь, в тупик вы собственно и пришли.
    Можно попробовать использовать внешнюю обработку заполнения табличных частей, она хотя бы знает про объект, который еще не записан в БД.

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