mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-01-05 12:50:36 +02:00
Merge pull request #301 from bia-technologies/feature/218
218 / Исправление ошибки работы с общими реквизитами.
This commit is contained in:
commit
65865a75d2
@ -20,12 +20,9 @@
|
||||
|
||||
Процедура Установить(Контекст, ИмяРеквизита, Значение) Экспорт
|
||||
|
||||
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
||||
ТекущаяЗапись = ДанныеСтроки(Контекст);
|
||||
Иначе
|
||||
ТекущаяЗапись = Контекст.Данные;
|
||||
КонецЕсли;
|
||||
ОписаниеРеквизита(Контекст, ИмяРеквизита); // Проверка наличия реквизита
|
||||
|
||||
ТекущаяЗапись = ТекущаяЗапись(Контекст);
|
||||
ТекущаяЗапись.Вставить(ИмяРеквизита, Значение);
|
||||
|
||||
КонецПроцедуры
|
||||
@ -34,13 +31,8 @@
|
||||
|
||||
ЮТПроверкиСлужебный.ПроверитьТипПараметра(ОграничениеТипа, "Тип, ОписаниеТипов, Строка", "Фикция", "ЮТКонструкторТестовыхДанных", Истина);
|
||||
|
||||
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
||||
ОписаниеРеквизита = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть][ИмяРеквизита];
|
||||
ТекущаяЗапись = ДанныеСтроки(Контекст);
|
||||
Иначе
|
||||
ОписаниеРеквизита = Контекст.Метаданные.Реквизиты[ИмяРеквизита];
|
||||
ТекущаяЗапись = Контекст.Данные;
|
||||
КонецЕсли;
|
||||
ТекущаяЗапись = ТекущаяЗапись(Контекст);
|
||||
ОписаниеРеквизита = ОписаниеРеквизита(Контекст, ИмяРеквизита);
|
||||
|
||||
Если ОграничениеТипа <> Неопределено Тогда
|
||||
ПолноеИмяРеквизита = ЮТСтроки.ДобавитьСтроку(Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита, ".");
|
||||
@ -56,13 +48,8 @@
|
||||
|
||||
Процедура ФикцияОбязательныхПолей(Контекст) Экспорт
|
||||
|
||||
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
||||
Реквизиты = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть];
|
||||
ТекущаяЗапись = ДанныеСтроки(Контекст);
|
||||
Иначе
|
||||
Реквизиты = Контекст.Метаданные.Реквизиты;
|
||||
ТекущаяЗапись = Контекст.Данные;
|
||||
КонецЕсли;
|
||||
Реквизиты = Реквизиты(Контекст);
|
||||
ТекущаяЗапись = ТекущаяЗапись(Контекст);
|
||||
|
||||
Для Каждого Элемент Из Реквизиты Цикл
|
||||
Реквизит = Элемент.Значение;
|
||||
@ -189,7 +176,7 @@
|
||||
// Структура - Новый контекст конструктора:
|
||||
// * Менеджер - Произвольный
|
||||
// * Данные - Структура
|
||||
// * Метаданные - см. ЮТМетаданные.ОписаниеОбъектаМетаданных
|
||||
// * Метаданные - см. ЮТМетаданные.СтруктураОписанияОбъектаМетаданных
|
||||
// * ТекущаяТабличнаяЧасть - Строка
|
||||
// * ДополнительныеСвойства - Структура
|
||||
Функция НовыйКонтекстКонструктора(Менеджер) Экспорт
|
||||
@ -247,4 +234,43 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Реквизиты(Контекст)
|
||||
|
||||
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
||||
Возврат Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть];
|
||||
Иначе
|
||||
Возврат Контекст.Метаданные.Реквизиты;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеРеквизита(Контекст, ИмяРеквизита)
|
||||
|
||||
Реквизиты = Реквизиты(Контекст);
|
||||
|
||||
Если НЕ Реквизиты.Свойство(ИмяРеквизита) Тогда
|
||||
ИмяОсновнойТаблицы = ЮТМетаданные.НормализованноеИмяТаблицы(Контекст.Метаданные);
|
||||
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
||||
Пояснение = СтрШаблон("Табличная часть `%1.%2` не содержит реквизит `%3`", ИмяОсновнойТаблицы, Контекст.ТекущаяТабличнаяЧасть, ИмяРеквизита);
|
||||
Иначе
|
||||
Пояснение = СтрШаблон("`%1` не содержит реквизит `%2`", ИмяОсновнойТаблицы, ИмяРеквизита);
|
||||
КонецЕсли;
|
||||
|
||||
ВызватьИсключение Пояснение;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Реквизиты[ИмяРеквизита];
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТекущаяЗапись(Контекст)
|
||||
|
||||
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
||||
Возврат ДанныеСтроки(Контекст);
|
||||
Иначе
|
||||
Возврат Контекст.Данные;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -39,7 +39,7 @@
|
||||
// Значение - ОбъектМетаданных
|
||||
// - Тип - Тип объекта информационной базы
|
||||
// - Строка - Полное имя объекта метаданных
|
||||
// - см. ОписаниеОбъектаМетаданных
|
||||
// - см. СтруктураОписанияОбъектаМетаданных
|
||||
// - Произвольный - Объект информационной базы
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
@ -117,7 +117,7 @@
|
||||
// Документ - ОбъектМетаданных
|
||||
// - Тип - Тип объекта информационной базы
|
||||
// - Строка - Полное имя объекта метаданных
|
||||
// - см. ОписаниеОбъектаМетаданных
|
||||
// - см. СтруктураОписанияОбъектаМетаданных
|
||||
// - ДокументСсылка, ДокументОбъект - Объект информационной базы
|
||||
// - ДокументМенеджер - Менеджер вида документа
|
||||
//
|
||||
|
@ -146,6 +146,8 @@
|
||||
ДобавитьОписанияРеквизитов(МетаданныеОбъекта.РеквизитыАдресации, ОписаниеОбъект.Реквизиты, Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
ДобавитьОбщиеРеквизиты(МетаданныеОбъекта, ОписаниеОбъект.Реквизиты);
|
||||
|
||||
Если ОписаниеТипа.ТабличныеЧасти Тогда
|
||||
|
||||
Для Каждого ТабличнаяЧасть Из МетаданныеОбъекта.ТабличныеЧасти Цикл
|
||||
@ -336,6 +338,23 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьОбщиеРеквизиты(МетаданныеОбъекта, КоллекцияОписаний)
|
||||
|
||||
Использовать = Метаданные.СвойстваОбъектов.ИспользованиеОбщегоРеквизита.Использовать;
|
||||
Авто = Метаданные.СвойстваОбъектов.ИспользованиеОбщегоРеквизита.Авто;
|
||||
АвтоИспользование = Метаданные.СвойстваОбъектов.АвтоИспользованиеОбщегоРеквизита.Использовать;
|
||||
|
||||
Для Каждого Реквизит Из Метаданные.ОбщиеРеквизиты Цикл
|
||||
ЭлементСостава = Реквизит.Состав.Найти(МетаданныеОбъекта);
|
||||
|
||||
Если ЭлементСостава.Использование = Использовать Или Реквизит.АвтоИспользование = АвтоИспользование И ЭлементСостава.Использование = Авто Тогда
|
||||
КоллекцияОписаний.Вставить(Реквизит.Имя, НовоеОписаниеРеквизита(Реквизит, Ложь));
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция НовоеОписаниеРеквизита(Реквизит, ЭтоКлюч)
|
||||
|
||||
Описание = ЮТМетаданные.ОписаниеРеквизита();
|
||||
|
@ -245,7 +245,7 @@
|
||||
// Параметры: ОписаниеМенеджера -
|
||||
// См. ОписаниеМенеджера
|
||||
// Менеджер - Произвольный - Менеджер
|
||||
// ОписаниеТипа - см. ЮТМетаданные.ОписаниеОбъектаМетаданных
|
||||
// ОписаниеТипа - см. ЮТМетаданные.СтруктураОписанияОбъектаМетаданных
|
||||
// Данные - Структура
|
||||
// Возвращаемое значение:
|
||||
// Произвольный - Создать объект
|
||||
|
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonAttribute xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="557ba236-e478-4467-9815-120ccecab375">
|
||||
<name>Организация</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Организация</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>CatalogRef.Организации</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<content>
|
||||
<metadata>Catalog.Склады</metadata>
|
||||
<use>Use</use>
|
||||
</content>
|
||||
<autoUse>DontUse</autoUse>
|
||||
<dataSeparation>DontUse</dataSeparation>
|
||||
<usersSeparation>DontUse</usersSeparation>
|
||||
<authenticationSeparation>DontUse</authenticationSeparation>
|
||||
<configurationExtensionsSeparation>DontUse</configurationExtensionsSeparation>
|
||||
<fullTextSearch>DontUse</fullTextSearch>
|
||||
</mdclass:CommonAttribute>
|
@ -132,6 +132,7 @@
|
||||
<commonModules>CommonModule.ИнтеграцияМагазин</commonModules>
|
||||
<commonModules>CommonModule.ОбменМобильныеОбщее</commonModules>
|
||||
<commonModules>CommonModule.ОбменМобильныеПереопределяемый</commonModules>
|
||||
<commonModules>CommonModule.ПодпискиНаСобытия</commonModules>
|
||||
<commonModules>CommonModule.Пользователи</commonModules>
|
||||
<commonModules>CommonModule.Помощник</commonModules>
|
||||
<commonModules>CommonModule.ПомощникКлиент</commonModules>
|
||||
@ -147,14 +148,14 @@
|
||||
<commonModules>CommonModule.СервисныеМеханизмы</commonModules>
|
||||
<commonModules>CommonModule.УведомленияКлиент</commonModules>
|
||||
<commonModules>CommonModule.УведомленияСервер</commonModules>
|
||||
<commonModules>CommonModule.ПодпискиНаСобытия</commonModules>
|
||||
<commonAttributes>CommonAttribute.Организация</commonAttributes>
|
||||
<exchangePlans>ExchangePlan.Мобильные</exchangePlans>
|
||||
<xDTOPackages>XDTOPackage.ОбменСМобильнымУстройством</xDTOPackages>
|
||||
<webServices>WebService.MAExchange</webServices>
|
||||
<httpServices>HTTPService.ОписанияТоваров</httpServices>
|
||||
<httpServices>HTTPService.Товары</httpServices>
|
||||
<eventSubscriptions>EventSubscription.ПередЗаписьюСправочника</eventSubscriptions>
|
||||
<eventSubscriptions>EventSubscription.ПередЗаписьюДокумента</eventSubscriptions>
|
||||
<eventSubscriptions>EventSubscription.ПередЗаписьюСправочника</eventSubscriptions>
|
||||
<scheduledJobs>ScheduledJob.ОбновлениеАгрегатовПродаж</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ОбновлениеИндексаППД</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ОбновлениеИсторииДанных</scheduledJobs>
|
||||
|
@ -26,6 +26,7 @@
|
||||
.ДобавитьТест("СоздатьЗаписьРегистраСведений")
|
||||
.ДобавитьТест("Фикция")
|
||||
.ДобавитьТест("Фикция_Типизированная")
|
||||
.ДобавитьТест("Фикция_ОбщийРеквизит")
|
||||
.ДобавитьТест("ФикцияОбязательныхПолей")
|
||||
.ДобавитьТест("СоздатьГруппу")
|
||||
;
|
||||
@ -206,6 +207,17 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Фикция_ОбщийРеквизит() Экспорт
|
||||
|
||||
Склад = ЮТест.Данные().КонструкторОбъекта("Справочник.Склады")
|
||||
.Фикция("Организация")
|
||||
.ДанныеОбъекта();
|
||||
|
||||
ЮТест.ОжидаетЧто(Склад)
|
||||
.Свойство("Организация").Заполнено();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ФикцияОбязательныхПолей() Экспорт
|
||||
|
||||
Данные = ЮТест.Данные().КонструкторОбъекта("Справочники.Контрагенты")
|
||||
|
@ -46,6 +46,11 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Описание = ЮТМетаданные.ОписаниеОбъектаМетаданных("Справочник.Склады");
|
||||
ЮТест.ОжидаетЧто(Описание, "Проверка на общий реквизит")
|
||||
.Свойство("Реквизиты")
|
||||
.ИмеетСвойство("Организация");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура РегистрыДвиженийДокумента() Экспорт
|
||||
|
Loading…
Reference in New Issue
Block a user