gifts2017

функции перехода между документами одного типа :) может кому будет интересно.

Опубликовал Андрей Ярославцев (black_doctor) в раздел Программирование - Практика программирования

собственно говоря, ИДЕЯ НЕ МОЯ, заказчик заказал, я реализовал, не судите слишком строго :):):)
но надеюсь комунить пригодиться механизм :):):)

//тут описан механизм перехода между документами

// функции помещаються в общие , ну и от туда работают, для любого  документа :)

//в качестве входящих параметров задаем ссылку на документ и ссылку на  текущую форму :)

 

Процедура СледующийНажатие(док,ТекФорма) Экспорт
 Запрос = Новый Запрос;
 Запрос.Текст = "ВЫБРАТЬ Первые 1
  | ОперацииЦБ.Ссылка КАК Ссылка
  |ИЗ
  | ";
  Запрос.Текст = Запрос.Текст+"Документ."+Док.ссылка.Метаданные().Имя+" 
КАК ОперацииЦБ
  |ГДЕ
  | ОперацииЦБ.МоментВремени > &МоментВремени
  |
  |УПОРЯДОЧИТЬ ПО
  | ОперацииЦБ.МоментВремени";
 Запрос.УстановитьПараметр("МоментВремени",док.МоментВремени());
 Результат = Запрос.Выполнить().Выгрузить();
 Если Результат.Количество()>0 тогда
 Формочка = Результат[0].Ссылка.ПолучитьОбъект().ПолучитьФорму();
 Формочка.ПоложениеОкна = ТекФорма.ПоложениеОкна;
 ТекФорма.Закрыть();
 Формочка.Открыть();
 Иначе Сообщить("Этот документ первый в списке 
документов",СтатусСообщения.Внимание);
 КонецЕсли;
КонецПроцедуры

Процедура ПредидущийНажатие(док,ТекФорма) Экспорт
 Запрос = Новый Запрос;
 Запрос.Текст = "ВЫБРАТЬ Первые 1
  | ОперацииЦБ.Ссылка КАК Ссылка
  |ИЗ
  | ";
  Запрос.Текст = Запрос.Текст+"Документ."+Док.ссылка.Метаданные().Имя+" 
КАК ОперацииЦБ
  |ГДЕ
  | ОперацииЦБ.МоментВремени < &МоментВремени
  |
  |УПОРЯДОЧИТЬ ПО
  | ОперацииЦБ.МоментВремени УБЫВ";
 Запрос.УстановитьПараметр("МоментВремени",док.МоментВремени());
 Результат = Запрос.Выполнить().Выгрузить();
 Если Результат.Количество()>0 тогда
 Формочка = Результат[0].Ссылка.ПолучитьОбъект().ПолучитьФорму();
 Формочка.ПоложениеОкна = ТекФорма.ПоложениеОкна;
 ТекФорма.Закрыть();
 Формочка.Открыть();
 Иначе Сообщить("Этот документ первый в списке 
документов",СтатусСообщения.Внимание);
 КонецЕсли;
КонецПроцедуры

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Ivan (-ioan-) 15.02.12 13:03
Отлично!
Единственное в первой процедуре надо заменить сообщение пользователю на:
Сообщить("Этот документ последний в списке
документов",СтатусСообщения.Внимание); ;)

2. Андрей Ярославцев (black_doctor) 15.02.12 13:48
приятно, что есть наблюдательные люди :)
3. Владимир Паникаровских (Voldemar) 16.02.12 10:54
Ну вот, опередили меня с поправкой текста сообщения... :)
4. Юрий Осипов (yuraos) 16.02.12 11:25
(1) -ioan-, поддерживаю!
а также можно проверять тип переменной 'ТекФорма'
Если передали не форму, просто открывать следующий документ в списке.
Может быть полезно,
если доступ к сервису делать через кнопку в форме списка документов
или в форме списка журнала документов.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа