Версия для печати темы (https://pro1c.org.ua/index.php?s=0ec89ab2cc868a3af436eb1ba2550278&showtopic=9898)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Смена пиктограммы в журнале при выборе строки

Автор: koteyka-2 22.11.12, 12:14

В журнале документов есть пиктограммы (галочки) в текстовом поле. Нужно, что бы при двойном щелчке на пиктограмме изменялось значение (галочка есть или нет). Собственно саму функцию я сделаю сам. Мне нужно знать, возможно ли в журнале, что бы при щелчке на пиктограмму вызывалась функция, а не открывался документ, а при щелчке на другом поле открывался документ? В ТЗ всё проще, там указал колонку и вперед, а в журнале колонку не укажешь.
Спасибо.


 ! 

Правила, п. 4,5
 

Автор: Cthulhu 22.11.12, 16:34

ответ: возможно, да.

Автор: koteyka-2 24.11.12, 10:56

Цитата(Cthulhu @ 22.11.12, 16:34) *
ответ: возможно, да.

Спасибо. А чуть больше инфы можно? Хоть намекните, куда копать?

Что-то я нигде даже примера не нашел.

Автор: Sharzem 24.11.12, 12:55

А почему нельзя вынести кнопку ? Т.е. когда накладная не прошла проверку - в журнале подсветка красная, а когда проверили - жмем в журнале кнопочку - вызывается процедура и подсветка зеленая. Ну и если религия позволяет отказаться от Enter, данной кнопке можно присвоить клавишу (Например: F3).

Автор: koteyka-2 24.11.12, 12:59

Цитата(Sharzem @ 24.11.12, 12:55) *
А почему нельзя вынести кнопку ? Т.е. когда накладная не прошла проверку - в журнале подсветка красная, а когда проверили - жмем в журнале кнопочку - вызывается процедура и подсветка зеленая. Ну и если религия позволяет отказаться от Enter, данной кнопке можно присвоить клавишу (Например: F3).

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

Разве что сделать журнал в виде ТЗ, тогда это будет возможно. Но убеждают, что можно и в стандартном журнале.

Автор: Sharzem 24.11.12, 13:48

Что-то кажется есть в Formex, но я им никогда не пользовался - нужды не было.

Сорри за тупой ответ. Вот пример кода:

Процедура ПриВыбореСтроки()
    Если Форма.ТекущаяКолонка() = "Магазин" Тогда
        Сообщить("ЯЯЯЯ - Магазин");
        СтатусВозврата(0);
        Возврат;
    Иначе
        ОткрытьФорму(ТекущийДокумент,,0);
    КонецЕсли;
КонецПроцедуры                                              

Форма.ОбработкаВыбораСтроки(1);



 ! 

Для выделения кода есть теги!
 

Автор: Cthulhu 24.11.12, 16:14

Цитата(koteyka-2 @ 24.11.12, 10:56) *
Спасибо. А чуть больше инфы можно? Хоть намекните, куда копать?
Что-то я нигде даже примера не нашел.

подробнеее.

Вариант №1 - с двумя пиктограммами (нет отметки / есть отметка) - если пиктограмм больше двух, в качестве "нет отметки" / "есть отметка" будут использоваться первая и вторая пиктограммы.
1. В свойствах многострочной части указывается пиктограмма, состоящая минимум из двух пиктограмм - б/отметки (пустой квадратик) и с отметкой (квадратик с галочкой).
2. Добавляется текстовая колонка, наименование "МояПикто", Формула НомПиктоПоДокументу(ТекущийДокумент) и установленным флажком "отображать пиктограммы".
3. Добавляется переменная модуля(!): Перем ОтмДокумСЗ;
4. В теле модуля переменная из п.3. инициализируется: ОтмДокумСЗ=СоздатьОбъект("СписокЗначений");
5. В модуль формы добавляется функция: Функция НомПиктоПоДокументу(Докум="") Если ПустоеЗначение(Докум)<>0 Тогда Возврат(-1) Иначе Возврат(Число(ОтмДокумСЗ.Получить(""+Докум))+1) КонецЕсли КонецФункции //НомПиктоПоДокументу
6. В предопределенную процедуру "ПриОткрытии" (если нету - создать) вставляется (если ещё нету): Форма.ОбработкаВыбораСтроки(1);
7. В предопределенную процедуру "ПриВыбореСтроки" (если нету - создать) вставляется: Если Форма.АктивныйЭлемент()="МояПикто" Тогда ОтмДокумСЗ.Установить(""+ТекущийДокумент,1-Число(ОтмДокумСЗ.Получить(""+ТекущийДокумент))) ИначеЕсли ТекущийДокумент.Выбран()<>0 Тогда ОткрытьФорму(ТекущийДокумент) КонецЕсли;

Вариант №2 - с одной пиктограммой (галочка "есть отметка") - если пиктограмм больше одной, в качестве "отметки" будет использоваться первая пиктограмма.
1. В свойствах многострочной части указывается пиктограмма, состоящая минимум из одной пиктограммы - галочки (есть отметка), для неотмеченных там будет пусто и так.
2,3,4. См.пп.2-4 Варианта №1.
5. В модуль формы добавляется функция: Функция НомПиктоПоДокументу(Докум="") Если ПустоеЗначение(Докум)<>0 Тогда Возврат(-1) Иначе Возврат(Число(ОтмДокумСЗ.Получить(""+Докум))) КонецЕсли КонецФункции //НомПиктоПоДокументу
6,7. См.пп.6-7 Варианта №1.

прим.: да-да, я в курсе, СЗ распухает и содержит нули и единицы с представлениями всех документов, по которым даблкликали/ентерили после открітия журнала, неоптимально. сие во-первых некритично. а во-вторых в данном случае перфекционизм принечен в жертву компактности. ну, и в-третьих, такая неоптимальность дает возможность небезприятственно почесамть авторское самолюбие авторским же менторством - в виде "а теперь домашнее задание: разработайте вариант, в котором СЗ, задающий отметки, будет реализован более оптимально (а именно: будет содержать данные только по отмеченным документам)"

Автор: koteyka-2 24.11.12, 18:00

Цитата(Cthulhu @ 24.11.12, 16:14) *
подробнеее.
......................


Спасибо. Намудрено конечно здорово. Тут, пожалуй, формексом действительно проще было бы, но попробую и этот вариант (варианты).

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua