МГ: сессия от 2010-07-21

Сегодня в формате видео-уроков разобраны 10 вопросов, многие из них являются крайне познавательными, рекомендую к просмотру (выделил жирным шрифтом).

Ссылки для скачивания:

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь.

Если не активировали токен — посмотрите видео-инструкцию (видео N5)

Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.

комментариев 17 на “МГ: сессия от 2010-07-21”

  1. по вопросу №9. а как тогда обрабатывать другие ячейки, кроме самой верхней, если им имена нельзя давать?
    если у меня 150 строк номенклатуры я не могу для каждой прописывать обращение столбец-строка.
    какой-то ввариант предложили нереальный, Евгений.
    в 8.1 есть такое как параметр расшифровки. куда можно передавать значения. как например строилась ОСВ НЕ на СКД? Никто не прописывал туда руками номера ячеек. Это абсурд. Имхо вопрос №9 тему вопроса не раскрыл. Жаль((

    • строилась *расшифровка* ОСВ НЕ на СКД-уточнение.
      и еще в 8.1 зависело выводим в таб поле на форме или просто макет в отдельном окне. в отдельном окне расшифровки быть не может. про это стоило упомянуть, имхо.

      • Вопрос все же был больше не про расшифровку (то есть открытие другого отчета), а про изменение текста при нажатии на ячейку.

    • >если у меня 150 строк номенклатуры я не могу для каждой прописывать обращение столбец-строка.
      Нельзя прописывать где? В макете? Так там и не нужно ничего делать.
      А в программном коде обратиться ячейке по паре строка-столбец проблем нет, верно?

      • а где при нажатии на 140ю строчку мы увидим её номер вида срока столбец? в обработке расшифровки есть такой параметр?

        • Конечно же – Элемент.ТекущаяОбласть.Имя

  2. Евгений Ершов 22.07.2010 в 19:58

    Спасибо за ответы и за критику.
    По 4 видео (программная реализация проверки). Может ещё кому интересно.
    Было (код расположен в модуле форму документа):
    &НаКлиенте
    Процедура ДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    Если НЕ ЗначениеЗаполнено(Объект.Контрагент) Тогда
    Предупреждение(“Сначала выберите Контрагента”);
    СтандартнаяОбработка = Ложь;
    КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура ДоговорПриИзменении(Элемент)
    Договор = Объект.Договор;
    Если ПолучитьВладельца(Договор) Объект.Контрагент Тогда
    Предупреждение(“Договор не принадлежит выбранному Контрагенту”);
    Объект.Договор = ПолучитьПустуюСсылку();
    КонецЕсли;
    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция ПолучитьПустуюСсылку()
    Возврат Справочники.Договор.ПустаяСсылка();
    КонецФункции

    &НаСервереБезКонтекста
    Функция ПолучитьВладельца(Ссылка)
    Возврат Ссылка.Владелец;
    КонецФункции

    Стало:
    &НаКлиенте
    Процедура ДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    Если НЕ ЗначениеЗаполнено(Объект.Контрагент) Тогда
    Предупреждение(“Сначала выберите Контрагента”);
    СтандартнаяОбработка = Ложь;
    КонецЕсли;
    КонецПроцедуры

    &НаКлиенте
    Процедура ДоговорПриИзменении(Элемент)
    Перем ПустаяСсылка;

    Договор = Объект.Договор;
    Владелец = ПолучитьВладельца(Договор, ПустаяСсылка);
    Если Владелец Объект.Контрагент Тогда
    Предупреждение(“Договор не принадлежит выбранному Контрагенту”);
    Объект.Договор = ПустаяСсылка;
    КонецЕсли;
    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция ПолучитьВладельца(Ссылка, ПустаяСсылка)
    ПустаяСсылка = Справочники.Договор.ПустаяСсылка();
    Возврат Ссылка.Владелец;
    КонецФункции

    Два вызов сервера объединил в один, а вот третий вызов не нашел.
    Подскажите, может где неявно?

    • Значит, 3-го не было )
      Есть еще предложение, почему бы не реализовать серверную функцию
      ДоговорПринадлежитКонтрагенту(Договор, Контрагент), которая возвращает булево.
      Такой код будет более читабельным.

    • Евгений Ершов 22.07.2010 в 20:08

      В процедурах ДоговорПриИзменении(Элемент), в первом и втором варианте:
      Если ПолучитьВладельца(Договор) (здесь знак неравно) Объект.Контрагент Тогда

      Если Владелец (здесь знак неравно) Объект.Контрагент Тогда
      (просто при выводе комментария почему то не выводится)

  3. Первый файл не качается, исправьте пожалуйста

  4. 4 видео – еще добавлю один момент, в иерархии элементов формы у списка, если правую нажать, то можно еще включить “контекстное меню”, и, таким образом, можно проконтролировать еще там какие доступны команды, когда пользователь нажимает на самом списке правую кнопку мышки :) по умолчанию контекстное меню списков скрыто :(

    • Евгений Ершов 22.07.2010 в 20:16

      EgeniuXP, вы имели ввиду в иерархии элементов формы (у списка) в выведенном контекстном меню снять в свойствах галочку “Автозаполнение”?
      Чтобы не показывалось контекстное меню списка.

      • нет, там где все элементы формы лежат в иерархии – закладка “Элементы”, выберите таблицу и нажмите правую кнопку мышки и увидите “Показать контекстное меню”. А потом да,, можно выбрать контекстное меню в иерархии элементов формы и в свойствах убрать галку автозаполнение.

        • Евгений Ершов 23.07.2010 в 10:46

          Спасибо, понял. А дальше мы наверное любые команды можем туда вставить. (т.е. будет самодельное контекстное меню).