Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
denisushakov authored Apr 27, 2024
1 parent eea0d9f commit 9e98169
Showing 1 changed file with 19 additions and 11 deletions.
Original file line number Diff line number Diff line change
@@ -1,30 +1,38 @@
# Соответствие объектов информационной базы через регистр сведений

Для хранения соответствия 2-3х объектов в системе предназначен регистр сведений (РС) __СоответствияОбъектовИБ. В некоторых случаях можно создавать отдельные регистры (при использовании в высоконагруженных транзакциях или при наличии большого (более 100) количества соответствий или при более чем 3 соответствующих объектов).

Порядок создания соответствия:
- Добавить новое значение в перечисление __ТипСоответствияОбъектовИБ, если нужно, расширить типы измерений через определяемый тип __ТипыОбъектовСоответствийИБ.
- Создаем запись в регистре

Варианты получения соответствия:
- **__ОбщегоНазначенияСервер.ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1, Объект2, Объект3, ИспользоватьКэш)** - (параметры: Объект1, Объект2, Объект3, ИспользоватьКэш - необязательные) - Возвращает массив структур соответствий по установленному отбору
- **__ОбщегоНазначенияСервер.ПолучитьЗначенияОбъектаСоответствияПоКлючу(ТипСоответствия, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта, ИспользоватьКэш)** - (параметры: ИспользоватьКэш - необязательные) - Возвращает массив значений произвольного типа, объекта соответствия.
- Делать соединение с регистром в запросах

1. ПолучитьСоответствиеОбъектовИБ - Позволяет фильтровать результаты по трем объектам.

```1C (BSL)
Процедура Тест()
// Вызов метода с заданными параметрами
МассивСоответствий = __ОбщегоНазначенияСервер.ПолучитьСоответствиеОбъектовИБ(ТипСоответствия, Объект1, Объект2, , Истина);
// Пример обработки полученного массива структур
Для Каждого Соответствие Из МассивСоответствий Цикл
Сообщить("Тип соответствия: " + Соответствие.ТипСоответствия);
Сообщить("Объект 1: " + Соответствие.Объект1);
Сообщить("Объект 2: " + Соответствие.Объект2);
Сообщить("Объект 3: " + Соответствие.Объект3);
КонецЦикла;
МассивСоответствий = __ОбщегоНазначенияСервер.ПолучитьСоответствиеОбъектовИБ(Перечисления.__ТипСоответствияОбъектовИБ.Тест, Тест1, Тест2, , Истина);
Если ЗначениеЗаполнено(МассивСоответствий) Тогда
РезультатТест = МассивСоответствий[0].Объект3;
КонецЕсли;
КонецПроцедуры
```
2. ПолучитьЗначенияОбъектаСоответствияПоКлючу
2. ПолучитьЗначенияОбъектаСоответствияПоКлючу - Позволяет получить массив значений по ключу

```1C (BSL)
Процедура Тест()
ИмяКлюча = "Объект1";
ЗначениеКлюча = Склад;
ИмяОбъекта = "Объект3";
// Вызов метода с заданными параметрами
Значения = __ОбщегоНазначенияСервер.ПолучитьЗначенияОбъектаСоответствияПоКлючу(ТипСоответствия, ИмяКлюча, ЗначениеКлюча, ИмяОбъекта);
Значения = __ОбщегоНазначенияСервер.ПолучитьЗначенияОбъектаСоответствияПоКлючу(Перечисления.__ТипСоответствияОбъектовИБ.Тест, "Объект1", Тест, "Объект2");
// Пример использования полученного массива значений
Если ЗначениеЗаполнено(Значения) Тогда
Expand Down

0 comments on commit 9e98169

Please sign in to comment.