8.х Произвольное изменение значений в колонке ТЧ на форме. Управляемые формы.

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

  1. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Дано:
    Есть управляемая форма документа:
    upload_2015-11-30_17-38-28.png

    Колонка ТЧ "ТипОперации" - это колонка для вывода картинки. Значения в БД не хранятся.

    Значения в колонку устанавливаются так:
    Код:
    &НаСервере
    Процедура ПриЧтенииНаСервере(ТекущийОбъект)
     
        Для Каждого ТекСтр Из Объект.ТабличнаяЧасть1 Цикл
         
            Если ТекСтр.ТипОперации = Перечисления.ТипОперацииАБАКУС.Выпуск Тогда
                ТекСтр.ТипОперацииКартинка = 0;
                Если НЕ ЗначениеЗаполнено(ТекСтр.Вексель) Тогда
                    ТекСтр.Вексель = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
                КонецЕсли;
            ИначеЕсли ТекСтр.ТипОперации = Перечисления.ТипОперацииАБАКУС.Погашение Тогда
                ТекСтр.ТипОперацииКартинка = 1;
                Если НЕ ЗначениеЗаполнено(ТекСтр.Вексель) Тогда
                    ТекСтр.Вексель = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
                КонецЕсли;
            ИначеЕсли ТекСтр.ТипОперации = Перечисления.ТипОперацииАБАКУС.Приобретение Тогда
                ТекСтр.ТипОперацииКартинка = 2;
                Если НЕ ЗначениеЗаполнено(ТекСтр.Вексель) Тогда
                    ТекСтр.Вексель = Справочники.ЦенныеБумаги.ПустаяСсылка();
                КонецЕсли;
            ИначеЕсли ТекСтр.ТипОперации = Перечисления.ТипОперацииАБАКУС.Реализация Тогда
                ТекСтр.ТипОперацииКартинка = 3;
                Если НЕ ЗначениеЗаполнено(ТекСтр.Вексель) Тогда
                    ТекСтр.Вексель = Справочники.ЦенныеБумаги.ПустаяСсылка();
                КонецЕсли;
            Иначе
                ТекСтр.ТипОперацииКартинка = -1;
            КонецЕсли;
         
        КонецЦикла;
     
    КонецПроцедуры
    После открытия формы все хорошо. Визуально это выглядит вот так:
    upload_2015-11-30_17-43-31.png

    Если просто провести документ, то после проведения, картинки меняется:
    upload_2015-11-30_17-46-59.png

    Вопрос: куда пнуть, чтобы значения либо оставались прежними, либо заново установить нужные?
  2. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Оформи то что у тебя сейчас в ПриЧтенииНаСервере отдельной серверной процедурой формы.

    И вызывай уже эту процедуру в ПриЧтенииНаСервере, ПослеЗаписиНаСервере.
    nomad_irk нравится это.
  3. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Если никто более изящного решения не предложит, то видимо это решение будет единственно верным :)
  4. SkyNetYar
    Offline

    SkyNetYar Опытный в 1С

    Регистрация:
    11 ноя 2014
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    Извините что в вашей теме,ну что бы не создавать новую,похожий вопрос немного..
    Как в ТЧ обработки вывести Представления метаданных а не имена самих метаданных? так для красоты...
  5. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Использовать синоним вместо имени.
  6. SkyNetYar
    Offline

    SkyNetYar Опытный в 1С

    Регистрация:
    11 ноя 2014
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    Если не сложно покажите пример, гуглил что не могу сообразить
    Код:
    мРеквизиты = Новый Массив;
        мРеквизиты.Добавить("ШтрихКод");
        мРеквизиты.Добавить("Артикул");
        мРеквизиты.Добавить("Наименование");
        мРеквизиты.Добавить("Количество");
        мРеквизиты.Добавить("Цена");
        мРеквизиты.Добавить("Сумма");
        мРеквизиты.Добавить("ЦенаПродажи");
        мРеквизиты.Добавить("Группа");
        Для Каждого Реквизит из Метаданные.Справочники.Номенклатура.Реквизиты Цикл
            мРеквизиты.Добавить(Реквизит.Имя);
        КонецЦикла;
    На данном примере
  7. TopicStarter Overlay
    nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.581
    Симпатии:
    717
    Баллы:
    204
    Если я правильно понял вопрос, то мРеквизиты.Добавить(Реквизит.Синоним)
    SkyNetYar нравится это.
  8. SkyNetYar
    Offline

    SkyNetYar Опытный в 1С

    Регистрация:
    11 ноя 2014
    Сообщения:
    146
    Симпатии:
    0
    Баллы:
    26
    Совершенно верно! все работает! Спасибо большое! -Happy-

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