gifts2017

Универсальная обработка для просмотра движений любого документа по всем регистрам в тонком клиенте для любых конфигураций 1С 8.2-8.3

Опубликовал Константин Юрин (kostyaomsk) в раздел Обработки - Обработка документов

Обработка может запускаться как самостоятельно, так и легко интегрироваться в состав любой конфигурации в тонком клиенте. Позволяет просмотреть все движения по документу в отдельном окне, а также в тех случаях, когда подобная вещь отсутствует в текущих условиях эксплуатации конфигурации (ограничения прав или ошибки в интерфейсе).
Данная обработка не привязана к конкретной конфигурации и позволяет видеть движения по всем регистрам документа при проведении. В принципе, в ней использованы базовые конструкции платформы 1С 8.2.16, так что она вполне работоспособна на современной платформе 8.3.5 и,возможно, выше.

В ряде случаев просто необходимо видеть при тестировании реальный результат проведения документа по регистрам, а стандартная обработка показа движений документа может отсутствовать. Такое бывает при:
1. При добавлении в типовую (или нетиповую отраслевую) конфигурацию нового документа даже путем копирования существующего (по умолчанию нет поддержки обработке по показу движений документа) как включить данный функционал будет показано ниже.
2. Разработки с нуля собственной конфигурации;
3. Невозможности добавления обработки показа движений в конфигурацию (разработка в хранилище, некорректная работа базовой версии или недостаток функционала стандартной обработки показа движений...).
Данная обработка позволяет как раз быть подобным универсальным инструментом для подобных ситуаций. Тестировалась в тонком клиенте на релизах 8.2.16, 8.3.5.1383 в конфигуарциях УНФ 1.5, БИТ строительство, БП 3.0.38 К сожалению, пока режим исполнения толстый клиент недоступен.

Скажу сразу, где-то попалась на инфостарте данная обработка, но ее пришлось серьезно подкорректировать для универсальности, а также добавить форму для отладки.

Ниже по шагам постараюсь продемонстрировать как модифицировать типовую обработку движений (вернее как корректнее интегрировать в уже готовую конфигурацию). 

Рисунок 1. В типовой конфигурации УНФ 1.4 движения документа.

 

 Рисунок 2. Добавление нового типа в параметр команды.

 

 Рисунок 3. Реквизиты отчета по движениям документа.

 

 Далее, ниже приводятся фрагменты кода по обработке команды


&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

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

 

Код из обработки

Функция ОпределитьНаличиеДвиженийПоРегистратору() 

ТекстЗапроса = ""; 
ДвиженияДокумента = Отчет.Документ.Метаданные().Движения;

Если ДвиженияДокумента.Количество() = 0 Тогда
Возврат Новый ТаблицаЗначений;
КонецЕсли;

Для Каждого Движение ИЗ ДвиженияДокумента Цикл

ТекстЗапроса = ТекстЗапроса + "
|" + ?(ТекстЗапроса = "", "", "ОБЪЕДИНИТЬ ВСЕ ") + "
|ВЫБРАТЬ ПЕРВЫЕ 1 ВЫРАЗИТЬ(""" + Движение.ПолноеИмя() 
+ """ КАК Строка(200)) КАК Имя ИЗ " + Движение.ПолноеИмя() 
+ " ГДЕ Регистратор = &Регистратор";

КонецЦикла;

Запрос = Новый Запрос(ТекстЗапроса);
ЗАпрос.УстановитьПараметр("Регистратор", Отчет.Документ);

ТаблицаЗапроса = Запрос.Выполнить().Выгрузить();
ТаблицаЗапроса.Индексы.Добавить("Имя");

Для Каждого СтрокаТаблицыДвижений Из ТаблицаЗапроса Цикл 
СтрокаТаблицыДвижений.Имя = Врег(СокрЛП(СтрокаТаблицыДвижений.Имя));
КонецЦикла;

Возврат ТаблицаЗапроса; 

КонецФункции
&НаСервере
// Функция возвращает вид регистра.
//
Функция ОпределитьВидРегистра(МетаданныеРегистра)

Если Метаданные.РегистрыНакопления.Индекс(МетаданныеРегистра) >= 0 Тогда
Возврат "Накопления";

ИначеЕсли Метаданные.РегистрыСведений.Индекс(МетаданныеРегистра) >= 0 Тогда
Возврат "Сведений"; 

ИначеЕсли Метаданные.РегистрыБухгалтерии.Индекс(МетаданныеРегистра) >= 0 Тогда
Возврат "Бухгалтерии";

Иначе
Возврат "";

КонецЕсли;

КонецФункции

 

Еще одним из существенных недостатков является то, что данная обработка не показывает только движения документа, сформированные "штатно", процедурой ОбработкаПровдения данного документа. А вот если движения по данному документу будут сформированы обработкой программно, где он будет участвовать в качестве регистратора уже увы. Стои ли усложнять задачу?

Возможно и в данной обработке будут ошибке. Пишите. Буду дорабатывать.

Скачать файлы

Наименование Файл Версия Размер
Универсальная внешняя обработка для просмотра движений документа по всем регистрам в режиме тонкого клиента (на управляемых формах) в любых конфигурациях 1С 8 17
.epf 8,72Kb
10.03.15
17
.epf 1.0 8,72Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Allexey (alex_4x) 06.04.15 14:31
А в чем такая сложность отбирать движения по регистратору ?
>> А вот если движения по данному документу будут сформированы обработкой программно, где он будет участвовать в качестве регистратора уже увы.
kostyaomsk; +1 Ответить 1
2. Константин Юрин (kostyaomsk) 06.04.15 16:48
(1) alex_4x, а руки пока не доходят сделать. Но замечания дельные. Вопрос сразу нужно ли? Забыл про документы корректировки регистров и справку бух посмотреть. Видимо тут нужно.