МГ: сессия от 2010-07-21
Сегодня в формате видео-уроков разобраны 10 вопросов, многие из них являются крайне познавательными, рекомендую к просмотру (выделил жирным шрифтом).
Ссылки для скачивания:
К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь.
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.
по вопросу №9. а как тогда обрабатывать другие ячейки, кроме самой верхней, если им имена нельзя давать?
если у меня 150 строк номенклатуры я не могу для каждой прописывать обращение столбец-строка.
какой-то ввариант предложили нереальный, Евгений.
в 8.1 есть такое как параметр расшифровки. куда можно передавать значения. как например строилась ОСВ НЕ на СКД? Никто не прописывал туда руками номера ячеек. Это абсурд. Имхо вопрос №9 тему вопроса не раскрыл. Жаль((
строилась *расшифровка* ОСВ НЕ на СКД-уточнение.
и еще в 8.1 зависело выводим в таб поле на форме или просто макет в отдельном окне. в отдельном окне расшифровки быть не может. про это стоило упомянуть, имхо.
Вопрос все же был больше не про расшифровку (то есть открытие другого отчета), а про изменение текста при нажатии на ячейку.
>если у меня 150 строк номенклатуры я не могу для каждой прописывать обращение столбец-строка.
Нельзя прописывать где? В макете? Так там и не нужно ничего делать.
А в программном коде обратиться ячейке по паре строка-столбец проблем нет, верно?
а где при нажатии на 140ю строчку мы увидим её номер вида срока столбец? в обработке расшифровки есть такой параметр?
Конечно же – Элемент.ТекущаяОбласть.Имя
Спасибо за ответы и за критику.
По 4 видео (программная реализация проверки). Может ещё кому интересно.
Было (код расположен в модуле форму документа):
&НаКлиенте
Процедура ДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если НЕ ЗначениеЗаполнено(Объект.Контрагент) Тогда
Предупреждение(“Сначала выберите Контрагента”);
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
Договор = Объект.Договор;
Если ПолучитьВладельца(Договор) Объект.Контрагент Тогда
Предупреждение(“Договор не принадлежит выбранному Контрагенту”);
Объект.Договор = ПолучитьПустуюСсылку();
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьПустуюСсылку()
Возврат Справочники.Договор.ПустаяСсылка();
КонецФункции
&НаСервереБезКонтекста
Функция ПолучитьВладельца(Ссылка)
Возврат Ссылка.Владелец;
КонецФункции
Стало:
&НаКлиенте
Процедура ДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если НЕ ЗначениеЗаполнено(Объект.Контрагент) Тогда
Предупреждение(“Сначала выберите Контрагента”);
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
Перем ПустаяСсылка;
Договор = Объект.Договор;
Владелец = ПолучитьВладельца(Договор, ПустаяСсылка);
Если Владелец Объект.Контрагент Тогда
Предупреждение(“Договор не принадлежит выбранному Контрагенту”);
Объект.Договор = ПустаяСсылка;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьВладельца(Ссылка, ПустаяСсылка)
ПустаяСсылка = Справочники.Договор.ПустаяСсылка();
Возврат Ссылка.Владелец;
КонецФункции
Два вызов сервера объединил в один, а вот третий вызов не нашел.
Подскажите, может где неявно?
Значит, 3-го не было )
Есть еще предложение, почему бы не реализовать серверную функцию
ДоговорПринадлежитКонтрагенту(Договор, Контрагент), которая возвращает булево.
Такой код будет более читабельным.
Да, спасибо!
В процедурах ДоговорПриИзменении(Элемент), в первом и втором варианте:
Если ПолучитьВладельца(Договор) (здесь знак неравно) Объект.Контрагент Тогда
Если Владелец (здесь знак неравно) Объект.Контрагент Тогда
(просто при выводе комментария почему то не выводится)
Первый файл не качается, исправьте пожалуйста
Спокойно скачивается, попробуйте Download Master’ом
Скачал. Спасибо.
4 видео – еще добавлю один момент, в иерархии элементов формы у списка, если правую нажать, то можно еще включить “контекстное меню”, и, таким образом, можно проконтролировать еще там какие доступны команды, когда пользователь нажимает на самом списке правую кнопку мышки :) по умолчанию контекстное меню списков скрыто :(
EgeniuXP, вы имели ввиду в иерархии элементов формы (у списка) в выведенном контекстном меню снять в свойствах галочку “Автозаполнение”?
Чтобы не показывалось контекстное меню списка.
нет, там где все элементы формы лежат в иерархии – закладка “Элементы”, выберите таблицу и нажмите правую кнопку мышки и увидите “Показать контекстное меню”. А потом да,, можно выбрать контекстное меню в иерархии элементов формы и в свойствах убрать галку автозаполнение.
Спасибо, понял. А дальше мы наверное любые команды можем туда вставить. (т.е. будет самодельное контекстное меню).