Картинка "проведенности" документа на форме (Управляемые формы) на примере УТ11

05.06.13

База данных - HighLoad оптимизация

Как мы узнаём проведен ли документ если перед глазами его форма? А никак! Нужно либо знать тонкости конкретной формы документа, либо прибегать к дополнительным действиям, что не всегда удобно. Предлагаю добавить на форму идентификатор проведения, тремя способами:
1. Без единой "строчки кода" (но для каждого вида документов);
2. Тоже самое "программно" (для всех видов документов сразу);
3. Вообще без изменения конфигурации (через настройки пользователя, для каждого вида документов).

05.06.2013 Добавлен вариант программной настройки для УТ 11.1.х

Первый и второй способы предполагают включение возможности изменения в конфигураторе, и признак проведённости выглядит так:

Как это будет выглядеть

Первый способ (все делаем "ручками", но без "единой строчки кода"):

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

Находим в дереве метаданных, нужный документ, нужную форму (Реализация товаров и услуг, ФормаДокумента), открываем ее, и щелкаем мышью на поле "Номер" в "образе" формы (активизируется соответствующий элемент сверху):

Выбор документа

 

В свойствах Объекта находим свойство Проведен и перетаскиваем его мышью на поле Номер:

Добавление свойства на форму

Это приведет к тому что на поле "образа" появится флажек "Проведен":

Реквизит Проведен

Далее нужно несколько скорректировать свойства вновь добавленного поля "Проведен":

Сначала изменим Вид на "Поле картинки":

Вид

Затем зададим картинку, которая будет отображаться в случае, если документ будет иметь статус Проведен (предлагаю использовать из Стандартных, картинку "Синтактический контроль"):

Выбор картинки

Отключаем вывод заголовка (чтобы не сильно корежить форму):

Отключение заголовка

Зададим Рамку и Размер (убираем рамку, устанавливаем Ширину: 3, Высоту: 1):

Рамка и размер

Сохраняем конфигурацию, пробуем, радуемся (омрачает только то, что подобное, нужно проделать со всеми документами, где хочется видеть признак проведённости).

 

Второй способ (все делаем при помощи кода):

Работаем в конфигураторе. Включаем возможность изменений в Общем Модуле ДополнительныеОтчетыИОбработки. Способ включает отображение признака проведённости сразу для всех документов, которые могут быть проведены.

Открываем указанный модуль и находим процедуру ПриСозданииНаСервере(Форма) Экспорт, и в конце перед КонецПроцедуры, добавляем код:

Если ИмяФормыМассив[0] = "Документ" и ИмяФормыМассив[3] = "ФормаДокумента" Тогда
    Если Метаданные.Документы[ИмяФормыМассив[1]].Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить
        И Не Форма.Элементы.Найти("Номер") = Неопределено
    Тогда
        ПолеПроведен = Форма.Элементы.Вставить("Проведен", Тип("ПолеФормы"), Форма.Элементы.Номер.РодительФорма.Элементы.Номер);
        ПолеПроведен.Вид = ВидПоляФормы.ПолеКартинки;
        ПолеПроведен.ПутьКДанным = "Объект.Проведен";
        ПолеПроведен.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
        ПолеПроведен.КартинкаЗначений = БиблиотекаКартинок.СинтаксическийКонтроль;
        ПолеПроведен.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.БезРамки);
        ПолеПроведен.Ширина = 3;
        ПолеПроведен.Высота = 1;
        ПолеПроведен.РастягиватьПоГоризонтали = Ложь; 
        ПолеПроведен.РастягиватьПоВертикали = Ложь;
        ПолеПроведен.Подсказка = "Проведен";
    КонецЕсли;
КонецЕсли;

(Возможно придется заменить переменную Форма на ЭтаФорма)

Даннай код делает тоже самое, что мы делали "ручками" (работоспособно в УТ11 в трех последних конфигурациях до 11.0.9.15 включительно и в последних БП3.0) в процедуре, которая вызывается из всех документов (иногда журналов). Одновременное использование первого и второго способа будет приводить к ошибке (т.к. программный код второго способа будет пытаться добавить поле с именем ("Проведен"), которое уже существует по первому способу). На мой взгляд - этот способ наиболее предпочтителен, т.к. "включает" признак проведённости сразу для всех документов, причем правке подвергается один единственный общий модуль.

 

Третий способ (все делаем "ручками" в режиме Предприятие, для каждого пользователя, не нужно включать возможность изменений конфигурации, действие сохраняется при обновлении конфигурации): 

Это как бы косвенный способ отображения признака проведенности на форме, без включения возможности изменения, указанный в частности TVM (за что ему отдельное спасибо):

Вместо картинки проведенности отображаем на форме (обычно скрытую) кнопку "отмена проведения", действуем через настройки формы, непосредственно из рабочей среды из формы документа (ключевым здесь является установка свойства "Только во Все действия" кнопки "Отмена проведения" в значение "Нет"):

Включение отображения

В случае использования этого метода: если документ проведен - картинка проведенности будет "яркой" (кнопка доступной), в случае не проведенности - "тусклой" (кнопка недоступной):

Отмена проведения

Преимущества третьего способа:
 - отсутствие необходимости включать возможность изменений в конфигураторе;
 - сохранение его действия при обновлении конфигурации;

Недостатки третьего способа:
 - нужно проделать подобную операцию для каждого пользователя (или скопировать для каждого пользователя);
 - если у пользователя нет права распроведения документа, то он не увидит разницы (значок будет всегда "заблокирован");
 - пользователь "случайно" может распровести документ (просто нажав на эту кнопку);
 - на мой взгляд - меньшая наглядность.

 

UPD: 05.06.2013 Вариант программной настройки для УТ 11.1.х (проверено на 11.1.2.8 и более ранних)

В любой процедуре, вызываемой из модуля формы ПриСозданииНаСервере документа, например в ОбщемМодуле.ДополнительныеОтчетыИОбработки в экспортной процедуре ПриСозданииНаСервере, в самом начале добавляем вызов процедуры ДобавитьПризнакПроведенностиНаФорму(ЭтаФорма), которая практически повторяет вышеописанный код:

//Добавлена вся процедура (Картинка проведенности Начало)

Процедура ДобавитьПризнакПроведенностиНаФорму(Форма
     ИмяФормыМассив = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Форма.ИмяФормы, ".");
     Если ИмяФормыМассив[0] = "Документ" и ИмяФормыМассив[3] = "ФормаДокумента" Тогда
         Если Метаданные.Документы[ИмяФормыМассив[1]].Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить
             И Не Форма.Элементы.Найти("Номер") = Неопределено
         Тогда
             ГруппаПроведенИНомер = Форма.Элементы.Вставить("ГруппаПроведенИНомер", Тип("ГруппаФормы"), Форма.Элементы.Номер.Родитель, Форма.Элементы.Номер);
             ГруппаПроведенИНомер.Вид = ВидГруппыФормы.ОбычнаяГруппа;
             ГруппаПроведенИНомер.Отображение = ОтображениеОбычнойГруппы.Нет;
             ГруппаПроведенИНомер.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Горизонтальная
;
             ГруппаПроведенИНомер.РастягиватьПоГоризонтали = Форма.Элементы.Номер.РастягиватьПоГоризонтали;
             ГруппаПроведенИНомер.РастягиватьПоВертикали = Форма.Элементы.Номер.РастягиватьПоВертикали;
     
        ГруппаПроведенИНомер.ОтображатьЗаголовок = Ложь;
        
             Форма.Элементы.Переместить(Форма.Элементы.Номер, ГруппаПроведенИНомер
);   


             ПолеПроведен = Форма.Элементы.Вставить("Проведен", Тип("ПолеФормы"), Форма.Элементы.Номер.Родитель, Форма.Элементы.Номер);
             ПолеПроведен.Вид = ВидПоляФормы.ПолеКартинки;
             ПолеПроведен.ПутьКДанным = "Объект.Проведен";
             ПолеПроведен.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
             ПолеПроведен.КартинкаЗначений = БиблиотекаКартинок.СинтаксическийКонтроль;    
             ПолеПроведен.Рамка = Новый Рамка(ТипРамкиЭлементаУправления.БезРамки);
             ПолеПроведен.Ширина = 3;
             ПолеПроведен.Высота = 1;
             ПолеПроведен.РастягиватьПоГоризонтали = Ложь;
             ПолеПроведен.РастягиватьПоВертикали = Ложь;
             ПолеПроведен.Подсказка = "Проведен";
         КонецЕсли;
     КонецЕсли;

КонецПроцедуры // Картинка проведенности Окончание

Здесь группа ГруппаПроведенИНомер обеспечивает нормальное отображение признака проведенности в формах, в которых элемент Номер входит в группу, элементы которой сгруппированы вертикально, например форма документа СчетФактураВыданный.

См. также

HighLoad оптимизация Программист Платформа 1С v8.3 Бесплатно (free)

Метод очень медленно работает, когда параметр приемник содержит намного меньше свойств, чем источник.

06.06.2024    8488    Evg-Lylyk    61    

43

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    4788    spyke    28    

49

HighLoad оптимизация Программист Платформа 1С v8.3 Бесплатно (free)

Оказывается, в типовых конфигурациях 1С есть, что улучшить!

13.03.2024    7107    vasilev2015    20    

42

HighLoad оптимизация Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих запросов на sql, ожиданий, конвертация запроса в 1С и рекомендации, где может тормозить.

2 стартмани

15.02.2024    11623    223    ZAOSTG    76    

114

HighLoad оптимизация Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Принимать, хранить и анализировать показания счетчиков (метрики) в базе 1С? Почему бы нет? Но это решение быстро привело к проблемам с производительностью при попытках построить какую-то более-менее сложную аналитику. Переход на PostgresSQL только временно решил проблему, т.к. количество записей уже исчислялось десятками миллионов и что-то сложное вычислить на таких объемах за разумное время становилось все сложнее. Кое-что уже практически невозможно. А что будет с производительностью через пару лет - представить страшно. Надо что-то предпринимать! В этой статье поделюсь своим первым опытом применения СУБД Clickhouse от Яндекс. Как работает, что может, как на нее планирую (если планирую) переходить, сравнение скорости работы, оценка производительности через пару лет, пример работы из 1С. Все это приправлено текстами запросов, кодом, алгоритмами выполненных действий и преподнесено вам для ознакомления в этой статье.

1 стартмани

24.01.2024    5146    glassman    17    

40

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    11951    doom2good    49    

71
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. TMV 14 03.01.13 07:32 Сейчас в теме
Хм.. может проще вывести кнопку "отмена проведения" на форму и по ней ориентироваться? (И включать возможность редактирования не нужно)
EvgeniyOlxovskiy; CratosX; mxm2; +3 Ответить
3. mxm2 1268 03.01.13 17:56 Сейчас в теме
(1) TMV, Спасибо за подсказку. Добавил в статью. Ваш метод имеет безусловное преимущество, если больше незачем включать возможность изменений в конфигурации. Если же возможность изменений включена, то добавление в конфигураторе имхо - нагляднее.
26. ASchekachev 201 16.01.13 14:51 Сейчас в теме
Нет ничего проще, чем объяснить пользователю как пользоваться меню "Все действия", при этом ничего не нужно дорабатывать, для удобства соглашусь (1), можно просто перенести кнопку "Отмена проведения" рядом с кнопкой "Провести".
Соглашусь с (6). Мое мнение программная доработка не имеет смысла. Но это только мое мнение и оно может не совпадать с большинством.
Прикрепленные файлы:
27. mxm2 1268 16.01.13 15:02 Сейчас в теме
(26) ASchekachev, дочитайте до конца статью (ну или хотя бы внимательно прочитайте аннотацию).
Там есть способ, лишенный недостатка указанного в (6). Также там есть третий способ (вывод на панель кнопки "Отмена проведения" в пользовательском режиме), который имеет свои +/-, один из "минусов" - то что если у пользователя нет права распроведения документов - то он не увидит соответствующей активной кнопки. Не призываю включать возможность изменения только ради этой "фенечки", но если изменения уже возможны - её удобно применить (приоритетно, способ 2)
28. ASchekachev 201 16.01.13 15:56 Сейчас в теме
(27)

один из "минусов" - то что если у пользователя нет права распроведения документов - то он не увидит соответствующей активной кнопки


Статью прочитал внимательно и до конца, третий способ видел. Так же видел, что Вы его добавили после комментария (1).

"Минус", что Вы приводите на мой взгляд не актуальный для пользователя с ограниченными правами. Если он не может проводить/распроводить документ, то какой смысл видеть этот признак?

Другое дело пользователь имеющий права, к примеру он редактировал документ, сохранял его, затем переключался между окнами и когда вернулся в документ, решил его закрыть (без лишнего ОК), но не помнит проводил он его или нет. В таком случае он смотрит его текущее состояние и если нужно, то нажимает ОК, иначе Закрыть.

Повторюсь, что это только мое мнение и это нормально, что она не совпадает, к примеру, с Вашим.
29. mxm2 1268 16.01.13 16:06 Сейчас в теме
(28) ASchekachev,
Статью прочитал внимательно и до конца

но, видимо, не сразу...)))... а статья действительно рождалась как-бы "совместно" с сообществом. о чем и свидетельствуют комменты, да вобщем-то в том числе для этого они и нужны...)

"Минус", что Вы приводите на мой взгляд не актуальный для пользователя с ограниченными правами. Если он не может проводить/распроводить документ, то какой смысл видеть этот признак?

как сказать.. есть ряд пользователей которые видят, но сделать ничего не могут... директора, например... (смотрящие со стороны)
2. mxm2 1268 03.01.13 08:03 Сейчас в теме
Хороший метод. Сам сначала так делал. но не слишком наглядно это. да и потом всеравно пришлсь включить возможность изиенений. Поэтому прикрутил картинку
34. kenza 22.07.13 11:03 Сейчас в теме
(2) а есть возможность не только проведение отражать, а так же другие состояния: сохранен, помечен на удаление? И лучше конечно бы не в самой форме, а в ее заголовке?
Сделал вроде по методу №2, но состояние отражается не во всех документах, буду разбираться где проблема ), а так спасибо за статью +
35. mxm2 1268 22.07.13 12:00 Сейчас в теме
(34) kenza, пометку удаления можно отражать "рядом", таким же образом, можно совместить картинку проведенности и пометку удаления, но это потребует усложнения алгоритма; в заголовке - вроде как проще;

Если у Вас при реализации не во всех документах отображается картинка проверьте Вызывается ли процедура ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере из процедуры ПриСозданииНаСервере модуля формы документа.
4. mxm2 1268 04.01.13 00:22 Сейчас в теме
Изображение выбора картинки, которое почему-то не отображается:
Прикрепленные файлы:
5. w-divin 05.01.13 15:36 Сейчас в теме
интересненько.... влепим себе для наглядности )))
6. Свой 164 06.01.13 19:49 Сейчас в теме
автор предлагает для искомого результата:
- перелопатить форму КАЖДОГО документа
- повторять эти действия при каждом обновлении
не слишком ли большая цена за удовольствие видеть статус проведенности ?
как насчет подписки на событие открытия формы и проставления статуса в заголовке формы ?
7. mxm2 1268 06.01.13 20:10 Сейчас в теме
(6) Свой, Да не вопрос, подобные действия можно проделать не со всеми, а только с некоторыми документами. Т.к. у меня достаточно сильно измененная конфигурация, то для меня это - относительно небольшие временнЫе затраты (не для всех документов). Про события - чесно говоря даже не думал, а вот с использованием программирования это скорее всего можно сделать универсально. Второй способ - сохраняется даже при обновлении (в настройках пользователя). А вообще хорошо бы, что бы от 1С уже что-то подобное было.
8. 1cUserAndrew 63 07.01.13 16:44 Сейчас в теме
(6)
как насчет подписки на событие открытия формы и проставления статуса в заголовке формы ?

Свой, насколько я знаю, на данный момент платформа не предоставляет возможность делать подписки на события форм.
12. Поручик 4690 08.01.13 20:55 Сейчас в теме
(8) Уже давно есть, начиная с версий 8.2.15. Об этом на инфостарте уже писалось и я свои комменты делал.
13. mxm2 1268 08.01.13 22:58 Сейчас в теме
(12) Поручик, Вы имеете ввиду это http://infostart.ru/public/149181/? Тогда, позвольте процитировать Вас:

Это одно НО сводит почти на нет ценность фичи. 1С, как всегда, к ложке мёда прилагает бочку дёгтя.


Проще найти нечто общее при создании/открытии форм.
14. 1cUserAndrew 63 09.01.13 06:25 Сейчас в теме
(12) Да, про событие "ОбработкаПолученияФормы" я не подумал.)
Имел в виду события самих форм. Не менеджеров объектов.

Я вот что-то пока для себя не нашел применения этого события.
Да и применительно к данной теме чет сходу не соображу, как его можно использовать. Как добавить на форму элемент. Ведь самой формой мы в этом событии не оперируем. Имеем только вид формы и, возможно, имя формы.

Может и можно ... наверное, просто туплю с утра :)
15. Abadonna 3967 09.01.13 13:16 Сейчас в теме
(14) 1cUserAndrew, через ж... использовать можно. Один недостаток - событие серверное, ну никак из него форму не выдернешь :(
А вот так получилось, но мне лично не нравится:
&НаСервере
Процедура ПодпискаНаСобытие1ОбработкаПолученияФормы(Источник, ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) Экспорт
	Если ВидФормы="ФормаОбъекта" Тогда
		Ссылка=Параметры.Ключ;
		Объект=Ссылка.ПолучитьОбъект();
		СтарыйКомментарий=Объект.Комментарий;
		Проведен=" /ПРОВЕДЕН";
		НеПроведен=" /НЕ ПРОВЕДЕН";
		СтарыйКомментарий=СтрЗаменить(СтарыйКомментарий,Проведен,"");
		СтарыйКомментарий=СтрЗаменить(СтарыйКомментарий,НеПроведен,"");
		Если Объект.Проведен Тогда
			Объект.Комментарий=СтарыйКомментарий+Проведен;
		Иначе
			Объект.Комментарий=СтарыйКомментарий+НеПроведен;
		КонецЕсли;
		Объект.Записать(РежимЗаписиДокумента.Запись);
	КонецЕсли;
КонецПроцедуры

Показать
Прикрепленные файлы:
16. mxm2 1268 09.01.13 13:26 Сейчас в теме
(15) Abadonna, что-то как то невесело... ради информирования пользователя о проведенности, лишний раз производить запись объекта... Сама форма-то недоступна... Всетаки второй способ описанный в статье - лучше, да и обновлять его просто.
17. Abadonna 3967 09.01.13 14:15 Сейчас в теме
(16)
1. Я и написал, что мне не нравится
2. Второй способ - в УТ. Процедуры, там указанной, в БП 3.0 и в помине нет. А этот будет везде работать.
18. mxm2 1268 09.01.13 14:34 Сейчас в теме
(17) Abadonna, я прекрасно видел, что Вам не нравится, просто констатировал факт того что, реализация через запись объекта - не желательна (а иначе через события, вроде и не реализуешь)... В БП3 скорее всего тоже есть что-то общее при вызове формы документа... Нужно будет посмотреть (в крайнем случае можно будет добавить в каждый нужный докумнт)) ).
19. Abadonna 3967 09.01.13 14:39 Сейчас в теме
(18)
Нужно будет посмотреть (в крайнем случае можно будет добавить в каждый нужный докумнт)) ).

Добавить в каждый нужный -тогда уж проще добавить с процедуры каждого документа, например, ПриОткрытии
Навскидку я там как раз ни фиге не нашел. Но не особо и искал.
Кстати, если уж так юзверю шибко надо видеть, можно и коммент не трогать, и не перезаписывать.
Элементарное "Сообщить", оно так аккуратненько справа стыкуется.
21. mxm2 1268 09.01.13 18:34 Сейчас в теме
(19) Abadonna, Таки развернул БП3 версии 3.0.17.10: там аналогично делается через ОбщийМодуль/Процедуру "ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере", которая вызывается из аналогичной функции любого документа.
22. Abadonna 3967 09.01.13 18:47 Сейчас в теме
(21) Ну и хорошо, что есть ;)
Меня другое удивляет:
"(Источник, ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)"
Раз ВидФормы передается, то, наверное, как-то можно было и контекст формы передать?...
23. mxm2 1268 12.01.13 13:24 Сейчас в теме
(22) Abadonna, Если это модуль менеджера, то "по логике" - никак, сдается мне что эта фича сделана для того чтобы "подменять" стандартную форму какой-либо другой, при этом не править ни саму эту исходную форму ни места её вызовов.
24. Abadonna 3967 12.01.13 13:34 Сейчас в теме
(23) это ж еще и подписка на событие...
25. mxm2 1268 12.01.13 13:50 Сейчас в теме
(24) Abadonna, Все верно, подписка на событие уровня менеджера объекта, т.е. при возникновении, формы объекта как таковой, еще не существует, (есть только форма в дереве метаданных, которая, вроде как, недоступна для изменения из языка, впрочем она существует и до и после события)
31. ksai 18.01.13 11:32 Сейчас в теме
(15) Abadonna, (16)

лишний раз производить запись объекта


Чтобы исключить лишние телодвижения при записи объекта, можно сказать ему:

Источник.ОбменДанными.Загрузка = Истина;
32. mxm2 1268 18.01.13 12:04 Сейчас в теме
(31) ksai, применительно к данной теме - неактуально. Ибо запись всеравно будет происходить (пусть и без встроенных в конфигурацию проверок).
33. ksai 18.01.13 16:59 Сейчас в теме
(32)
к данной теме - вне всякого сомнения :) перезаписывать объект для данной задачи - бред с любой точки зрения)
мой комментарий - поправка к конкретному коду пользователя Abadonna
9. mxm2 1268 07.01.13 19:53 Сейчас в теме
(6) Свой, (8) 1cUserAndrew, Есть универсальный программный способ, сразу для всех документов... если получится - добавлю...
10. mxm2 1268 08.01.13 07:53 Сейчас в теме
(6) Свой, Добавлен программный способ. теперь все просто, для всех документов сразу.
Свой; +1 Ответить
11. zoytsa 08.01.13 08:08 Сейчас в теме
пример коллективной работы сообщества! спасибо!
20. Abadonna 3967 09.01.13 14:49 Сейчас в теме
+/19/ Давно убедился, что штатными методами особо в 1С не разгонишься. ВК - милое дело.
MiracleNative событие открытия любой формы получает без проблем.
30. LexSeIch 211 17.01.13 08:58 Сейчас в теме
Мир этому дому!

Жизнь складывается из мелочей. А хорошая жизнь - из удобных мелочей. Спасибо идею и за статью.
36. OBEH 15.08.13 16:58 Сейчас в теме
По моему, при первом способе, надо еще убрать галочки на свойствах
"РастягиватьПоГоризонтали" и "РастягиватьПоВертикали". В противном случае,
занимается лишнее место под картинку.
37. maxis33 45 04.07.14 16:58 Сейчас в теме
Пользовался этим способом почти год, и тут раз - 1С сами такое в БП 3.0 сделали...
orekhov_rnd; +1 Ответить
38. zoytsa 22.07.14 09:53 Сейчас в теме
Думаю, приоритетный вариант с настройкой каждой формы вручную - с т.з. производительности, иначе
требуется обработка модуля с множеством условий.

Но если конфигурация на поддержке в целом, то безусловно вариант с модулем хороший.
39. Sam13 346 10.03.16 14:24 Сейчас в теме
Не понимаю, зачем добавлять Поле формы, связывать его с данными.
Предлагаю сделать так:

ПолеПроведен = Форма.Элементы.Вставить("тфр_КартинкаСтатуса", Тип("ДекорацияФормы"), Форма.Элементы.Номер.Родитель, Форма.Элементы.Номер);
ПолеПроведен.Вид = ВидДекорацииФормы.Картинка;
Если Форма.Объект.Проведен = Истина Тогда
ПолеПроведен.Картинка = БиблиотекаКартинок.ДокументПроведенКоннекторВерх;
ПолеПроведен.Подсказка = "Проведен";
ИначеЕсли Форма.Объект.ПометкаУдаления = Истина Тогда
ПолеПроведен.Картинка = БиблиотекаКартинок.ДокументПомеченНаУдалениеКоннекторВерх;
ПолеПроведен.Подсказка = "Помечен на удаление";
Иначе
ПолеПроведен.Картинка = БиблиотекаКартинок.ДокументЗаписанКоннекторВерх;
ПолеПроведен.Подсказка = "Не проведен";
КонецЕсли;
pusal; Asdam; nado_hto; +3 Ответить
Оставьте свое сообщение