По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Если хотя бы одна константа участвует в обмене данными, то создается таблица регистрации изменений констант (_ConstsChngR) со следующими полями:
_Node - ссылка на узел плана обмена;
_MessageNo - номер сообщения обмена данными, в которое было выгружено это изменение или NULL, если оно еще не было выгружено;
_ConstID - идентификатор константы, значение которой изменилось.
_Fld<n> - общие реквизиты
И далее для остальных таблиц.
(6)
Какие изменения? Если объект метаданных добавлен в план обмена, то у него будет таблица изменений. В конструкторе на уровне платформы реализовано.
При нажатии на кнопку обходите объекты и проверяйте на включение в узел обмена, затем добавляете новую строку с таблицей изменений и полями, которые вам нужны.
После этого работа в запросе происходит как и с другими таблицами.
Какие изменения? Если объект метаданных добавлен в план обмена, то у него будет таблица изменений. В конструкторе на уровне платформы реализовано.
При нажатии на кнопку обходите объекты и проверяйте на включение в узел обмена, затем добавляете новую строку с таблицей изменений и полями, которые вам нужны.
После этого работа в запросе происходит как и с другими таблицами.
(9)
Все шикарно,но почему то в дерево не хочет добавлять?:( Он не находит метаданные с изменениями
Для Каждого Об_МД из Метаданные.Документы Цикл
Содержит = Метаданные.ПланыОбмена.Полный.Состав.Содержит(Об_МД);
Если Содержит Тогда
// Добавляем в таблицу новую строку с изменениями
КонецЕсли;
КонецЦикла;
Содержит = Метаданные.ПланыОбмена.Полный.Состав.Содержит(Об_МД);
Если Содержит Тогда
// Добавляем в таблицу новую строку с изменениями
КонецЕсли;
КонецЦикла;
Все шикарно,но почему то в дерево не хочет добавлять?:( Он не находит метаданные с изменениями
Прикрепленные файлы:



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