Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Загрузка из XML

Помогите, пожалуйста, с загрузкой. Есть код, который определяет дисциплины из файла и выводит в сообщение. А нужно чтобы эти дисциплины и данные по ним (количество лабораторных, лекции и т.д.) записывались в табличную часть справочника.
Код:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
&НаСервере
Процедура Команда1НаСервере()
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл("G:\document.xml");
Выводить = Ложь;
Пока Чтение.Прочитать()Цикл
    
    Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента И Чтение.Имя="СтрокиПлана" Тогда
        Выводить = Истина;
    Конецесли;
    Если Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента И Чтение.Имя="СтрокиПлана" Тогда
        Выводить = Ложь;
    Конецесли;
 
    Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента И Выводить Тогда
        Если Чтение.Имя = "Строка" Тогда
            Наименование = Чтение.ПолучитьАтрибут("Дис");
            Сообщить(Наименование);     
        КонецЕсли;
    КонецЕсли;
КонецЦикла
 
КонецПроцедуры
 
&НаКлиенте
Процедура Команда1(Команда)
    Команда1НаСервере();
КонецПроцедуры
XML файл:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
 <СтрокиПлана>
      <Строка Дис="История" НовЦикл="Б1.Б" НовИдДисциплины="Б1.Б.1" Цикл="Б1" ИдетификаторВидаПлана="2" ИдетификаторДисциплины="Б1.Б.1" ГОС="180" СР="93" КомпетенцииКоды="2&amp;6" Компетенции="ОК-2, ОК-6" Кафедра="2" ПодлежитИзучению="180" КредитовНаДисциплину="5" ЧасовВЗЕТ="36" СемЭкз="1" СемРГР="1">
        <Сем Ном="1" Лек="17" Пр="34" СРС="93" ЧасЭкз="36" ЗЕТ="5" Экз="1" РГР="1">
          <VZ ID="101" H="17" />
          <VZ ID="103" H="34" />
          <VZ ID="107" H="93" />
          <VZ ID="108" H="36" />
        </Сем>
      </Строка>
      <Строка Дис="Философия" НовЦикл="Б1.Б" НовИдДисциплины="Б1.Б.2" Цикл="Б1" ИдетификаторВидаПлана="2" ИдетификаторДисциплины="Б1.Б.2" ГОС="180" СР="93" КомпетенцииКоды="1&amp;7" Компетенции="ОК-1, ОК-7" Кафедра="9" ПодлежитИзучению="180" КредитовНаДисциплину="5" ЧасовВЗЕТ="36" СемЭкз="3" СемКП="3">
        <Сем Ном="3" Лек="17" Пр="34" СРС="93" ЧасЭкз="36" ЗЕТ="5" Экз="1" КП="1">
          <VZ ID="101" H="17" />
          <VZ ID="103" H="34" />
          <VZ ID="107" H="93" />
          <VZ ID="108" H="36" />
        </Сем>
        <КурсовойПроект>
          <Семестр Сем="3" Ном="1">
            <РаспределениеСтудентовПоКафедрам Ном="1" Студентов="25" Кафедра="9" />
          </Семестр>
        </КурсовойПроект>
      </Строка>
      <Строка Дис="Иностранный язык" НовЦикл="Б1.Б" НовИдДисциплины="Б1.Б.3" Цикл="Б1" ИдетификаторВидаПлана="2" ИдетификаторДисциплины="Б1.Б.3" ГОС="288" СР="107" ЧасовИнтер="46" КомпетенцииКоды="5" Компетенции="ОК-5" Кафедра="1" ПодлежитИзучению="288" КредитовНаДисциплину="8" ЧасовВЗЕТ="36" СемЭкз="4" СемЗач="123" СемКР="2" НовСемЗач="123">
        <Сем Ном="1" Пр="34" ИнтПр="14" СРС="20" ЗЕТ="1.5" Зач="1">
          <VZ ID="103" H="34" IntH="14" />
          <VZ ID="107" H="20" />
        </Сем>
        <Сем Ном="2" Пр="34" ИнтПр="10" СРС="20" ЗЕТ="1.5" Зач="1" КР="1">
          <VZ ID="103" H="34" IntH="10" />
          <VZ ID="107" H="20" />
        </Сем>
        <Сем Ном="3" Пр="34" ИнтПр="10" СРС="29" ЗЕТ="1.75" Зач="1">
          <VZ ID="103" H="34" IntH="10" />
          <VZ ID="107" H="29" />
        </Сем>
        <Сем Ном="4" Пр="34" ИнтПр="12" СРС="38" ЧасЭкз="45" ЗЕТ="3.25" Экз="1">
          <VZ ID="103" H="34" IntH="12" />
          <VZ ID="107" H="38" />
          <VZ ID="108" H="45" />
        </Сем>
        <КурсоваяРабота>
          <Семестр Сем="2" Ном="1">
            <РаспределениеСтудентовПоКафедрам Ном="1" Кафедра="1" />
          </Семестр>
        </КурсоваяРабота>
      </Строка>
      <Строка Дис="Бухгалтерский, налоговый и управленческий учет" НовЦикл="Б1.В.ОД" НовИдДисциплины="Б1.В.ОД.1" Цикл="Б1.Р" ИдетификаторВидаПлана="2" ИдетификаторДисциплины="Б1.В.1" ГОС="180" СР="84" ЧасовИнтер="17" КомпетенцииКоды="3&amp;4&amp;7&amp;10&amp;12&amp;37" Компетенции="ОК-3, ОК-4, ОК-7, ОПК-1, ОПК-3, ПК-24" Кафедра="21" ПодлежитИзучению="180" КредитовНаДисциплину="5" ЧасовВЗЕТ="36" СемЭкз="6" СемРГР="6">
        <Сем Ном="6" Лек="17" ИнтЛек="7" Пр="34" ИнтПр="10" СРС="84" ЧасЭкз="45" ЗЕТ="5" Экз="1" РГР="1">
          <VZ ID="101" H="17" IntH="7" />
          <VZ ID="103" H="34" IntH="10" />
          <VZ ID="107" H="84" />
          <VZ ID="108" H="45" />
        </Сем>
      </Строка>
      <Строка Дис="Управление предприятием" НовЦикл="Б1.В.ОД" НовИдДисциплины="Б1.В.ОД.2" Цикл="Б1.Р" ИдетификаторВидаПлана="2" ИдетификаторДисциплины="Б1.В.2" ГОС="216" СР="104" ЧасовИнтер="36" КомпетенцииКоды="1&amp;3&amp;4&amp;11&amp;12&amp;14&amp;15&amp;20&amp;31" Компетенции="ОК-1, ОК-3, ОК-4, ОПК-2, ОПК-3, ПК-1, ПК-2, ПК-7, ПК-18" Кафедра="32" ПодлежитИзучению="216" КредитовНаДисциплину="6" ЧасовВЗЕТ="36" СемЭкз="7" СемЗач="6" СемКР="6" НовСемЗач="6">
        <Сем Ном="6" Лек="17" Пр="17" СРС="56" ЗЕТ="2.5" Зач="1" КР="1">
          <VZ ID="101" H="17" />
          <VZ ID="103" H="17" />
          <VZ ID="107" H="56" />
        </Сем>
        <Сем Ном="7" Лек="17" ИнтЛек="12" Лаб="17" ИнтЛаб="12" Пр="17" ИнтПр="12" СРС="48" ЧасЭкз="27" ЗЕТ="3.5" Экз="1">
          <VZ ID="101" H="17" IntH="12" />
          <VZ ID="102" H="17" IntH="12" />
          <VZ ID="103" H="17" IntH="12" />
          <VZ ID="107" H="48" />
          <VZ ID="108" H="27" />
        </Сем>
        <КурсоваяРабота>
          <Семестр Сем="6" Ном="1">
            <РаспределениеСтудентовПоКафедрам Ном="1" Студентов="16" Кафедра="32" />
          </Семестр>
        </КурсоваяРабота>
      </Строка>
      <Строка Дис="Элективные курсы по физической культуре" Цикл="Б1" ИдетификаторВидаПлана="2" ИдетификаторДисциплины="Б1.Б.1" ГОС="328" СР="6" КомпетенцииКоды="8" Компетенции="ОК-8" Кафедра="61" НеСчитатьКонтроль="1" ПодлежитИзучению="328" ЧасовВЗЕТ="36" СемЗач="1356" НовСемЗач="1356">
        <Сем Ном="1" Лек="17" Пр="51" Зач="1">
          <VZ ID="101" H="17" />
          <VZ ID="103" H="51" />
        </Сем>
        <Сем Ном="2" Пр="50">
          <VZ ID="103" H="50" />
        </Сем>
        <Сем Ном="3" Пр="68" Зач="1">
          <VZ ID="103" H="68" />
        </Сем>
        <Сем Ном="4" Пр="51">
          <VZ ID="103" H="51" />
        </Сем>
        <Сем Ном="5" Пр="68" Зач="1">
          <VZ ID="103" H="68" />
        </Сем>
        <Сем Ном="6" Пр="17" СРС="6" Зач="1">
          <VZ ID="103" H="17" />
          <VZ ID="107" H="6" />
        </Сем>
      </Строка>
      <Строка Дис="Высокоуровневые методы информатики и программирования" НовЦикл="Б1.В.ДВ.1" НовИдДисциплины="Б1.В.ДВ.1.1" Цикл="Б1.ДВ1" ИдетификаторВидаПлана="2" ИдетификаторДисциплины="Б1.ДВ1.1" ГОС="72" СР="21" ЧасовИнтер="34" КомпетенцииКоды="7&amp;15&amp;21&amp;25" Компетенции="ОК-7, ПК-2, ПК-8, ПК-12" Кафедра="32" ПодлежитИзучению="72" КредитовНаДисциплину="2" ЧасовВЗЕТ="36" СемЗач="5" НовСемЗач="5">
        <Сем Ном="5" Лек="17" ИнтЛек="12" Лаб="34" ИнтЛаб="22" СРС="21" ЗЕТ="2" Зач="1">
          <VZ ID="101" H="17" IntH="12" />
          <VZ ID="102" H="34" IntH="22" />
          <VZ ID="107" H="21" />
        </Сем>
      </Строка>
      <Строка Дис="Инструментальные средства программирования" НовЦикл="Б1.В.ДВ.1" НовИдДисциплины="Б1.В.ДВ.1.2" Цикл="Б1.ДВ1" ИдетификаторВидаПлана="2" ИдетификаторДисциплины="Б1.ДВ1.2" ГОС="72" СР="21" ЧасовИнтер="34" КомпетенцииКоды="7&amp;15&amp;21&amp;25" Компетенции="ОК-7, ПК-2, ПК-8, ПК-12" Кафедра="32" ПодлежитИзучению="72" КредитовНаДисциплину="2" ЧасовВЗЕТ="36" СемЗач="5" НовСемЗач="5">
        <Сем Ном="5" Лек="17" ИнтЛек="12" Лаб="34" ИнтЛаб="22" СРС="21" ЗЕТ="2" Зач="1">
          <VZ ID="101" H="17" IntH="12" />
          <VZ ID="102" H="34" IntH="22" />
          <VZ ID="107" H="21" />
        </Сем>
      </Строка>
      <Строка Дис="Программное обеспечение информационных систем" НовЦикл="Б1.В.ДВ.2" НовИдДисциплины="Б1.В.ДВ.2.1" Цикл="Б1.ДВ2" ИдетификаторВидаПлана="2" ИдетификаторДисциплины="Б1.ДВ2.1" ГОС="108" СР="57" ЧасовИнтер="34" КомпетенцииКоды="3&amp;7&amp;10&amp;11&amp;12&amp;13&amp;14&amp;15&amp;20&amp;21&amp;23&amp;24&amp;25&amp;26&amp;27&amp;29&amp;35&amp;37" Компетенции="ОК-3, ОК-7, ОПК-1, ОПК-2, ОПК-3, ОПК-4, ПК-1, ПК-2, ПК-7, ПК-8, ПК-10, ПК-11, ПК-12, ПК-13, ПК-14, ПК-16, ПК-22, ПК-24" Кафедра="32" ПодлежитИзучению="108" КредитовНаДисциплину="3" ЧасовВЗЕТ="36" СемЗач="4" НовСемЗач="4">
        <Сем Ном="4" Лек="17" ИнтЛек="12" Лаб="34" ИнтЛаб="22" СРС="57" ЗЕТ="3" Зач="1">
          <VZ ID="101" H="17" IntH="12" />
          <VZ ID="102" H="34" IntH="22" />
          <VZ ID="107" H="57" />
        </Сем>
      </Строка>
      <Строка Дис="Прикладное программное обеспечение" НовЦикл="Б1.В.ДВ.2" НовИдДисциплины="Б1.В.ДВ.2.2" Цикл="Б1.ДВ2" ИдетификаторВидаПлана="2" ИдетификаторДисциплины="Б1.ДВ2.2" ГОС="108" СР="57" ЧасовИнтер="34" КомпетенцииКоды="3&amp;7&amp;10&amp;11&amp;12&amp;13&amp;14&amp;15&amp;20&amp;21&amp;23&amp;24&amp;25&amp;26&amp;27&amp;29&amp;35&amp;37" Компетенции="ОК-3, ОК-7, ОПК-1, ОПК-2, ОПК-3, ОПК-4, ПК-1, ПК-2, ПК-7, ПК-8, ПК-10, ПК-11, ПК-12, ПК-13, ПК-14, ПК-16, ПК-22, ПК-24" Кафедра="32" ПодлежитИзучению="108" КредитовНаДисциплину="3" ЧасовВЗЕТ="36" СемЗач="4" НовСемЗач="4">
        <Сем Ном="4" Лек="17" ИнтЛек="12" Лаб="34" ИнтЛаб="22" СРС="57" ЗЕТ="3" Зач="1">
          <VZ ID="101" H="17" IntH="12" />
          <VZ ID="102" H="34" IntH="22" />
          <VZ ID="107" H="57" />
        </Сем>
      </Строка>
    </СтрокиПлана>
Ответ: valexab, видимо вы несколько раз загружали файл и не обновляли список справочника(F5), удалите дубли.
Что не выводит?
Вопрос: Перенос ПКГС "из одного - в многие", ТиС 7.7 - УТ 11.

Добрый день!
Эх, игнор в мою прежнюю тему, видимо сильно далеко она уползла. Открою новую...

Дано: Переход с ТиС 7.7 на УТ 11.
В 1С ТиС 7.7 есть справочник "Контрагенты". У него есть реквизиты строкового типа:
1)
- ФИО руководителя
- должность руководителя
- тел руководителя
- почта руководителя

2)
1)
- ФИО менеджера
- должность менеджера
- тел менеджера
- почта менеджера

и т.д., 1) и 2) - это 8 реквизитов спр. Контрагенты строкового типа.

Я часть реквизитов (ФИО, должность) конвертировала в элементы справочника "Контактные лица партнера".
Сделала ПКО "Контрагенты_КонтактныеЛица", в обработчике "после выгрузки в файл" код:

+ Code
СЗ = СоздатьОбъект("СписокЗначений");
 
Если ПустоеЗначение(Источник.ФИОРуководителя) = 0 Тогда          //рукль


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

 Если ПустоеЗначение(Источник.ФИОРукПродаж) = 0 Тогда    //Рукль продаж


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

КонецЕсли;

Есть ПКО "Контакты", с пустым источником, приемником "КонтактныеЛицаПартнеров", и ПКС на каждый из реквизитов по подобному принципу в обработчике "Перед выгрузкой":

Значение = Источник.Получить("ДолжностьПоВизитке");

Все работает, элементы создаются.
Теперь собсна сам вопрос:

надо же теперь еще как-то "контактную информацию" для "Контактных лиц партнера" заполнить...

А вот тут я не могу понять.. С учетом идиотской схемы хранения КИ в Доп.реквизитах, как лучше поступить?

Заполнять КИ через "Выгрузить по правилу", в тех же ПКО, по аналогии с реквизитами "ФИО" и "Должность", как бы в том же цикле (пробовала - не получается...)?
или сделать новое ПКО для заполнения КИ, и выгружать по аналогии типовых правил для выгрузки КИ, например тех же партнеров?
Ответ: В продолжение ().

Добавляю в ПКО "Контакты" (которое вызывается из основного ПКО через "выгрузить по правилу") ПКГС "Контактная информация".

Если смотреть типовые ПКГС для "Контактной информации" (например в ПКО "Контрагенты_Партнеры"), то сокращенно (на примере только "телефона") в ПКГС создается ТЗ:

Если ТипЗначенияСтр(ВходящиеДанные) <> "СписокЗначений" Тогда
    ВходящиеДанные = СоздатьОбъект("СписокЗначений");
КонецЕсли;

КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
КоллекцияОбъектов.НоваяКолонка("Вид");
КоллекцияОбъектов.НоваяКолонка("Представление");
КоллекцияОбъектов.НоваяКолонка("Тип");
КоллекцияОбъектов.НоваяКолонка("НомерТелефона");

Если ПустаяСтрока(Источник.ЮрФизЛицо.Телефоны) = 0 Тогда
    ВходящиеДанные.Установить("Телефон",  Источник.ЮрФизЛицо.Телефоны);
    ВходящиеДанные.Установить("Родитель", "СправочникПартнеры");
    ВыгрузитьТелефоны();
КонецЕсли;

а потом вызывается Алгоритм "ВыгрузитьТелефоны();, в котором создается СЗ и устанавливается соответствие реквизитов Источника элементам СЗ:

СписокТелефонов = глРазложить(ВходящиеДанные.Получить("Телефон"), Параметры.РазделительТелефонов);
Для Номер = 1 По СписокТелефонов.РазмерСписка() Цикл
    
    Телефон     = СокрЛП(СписокТелефонов.ПолучитьЗначение(Номер));
    Родитель = ВходящиеДанные.Получить("Родитель");
                
Если Родитель = "СправочникКонтрагенты" Тогда
        
        Вид = "ТелефонКонтрагента";
        Если Номер > 1 Тогда
            Вид = СоздатьОбъект("СписокЗначений");
            Вид.Установить("Наименование",    "Телефон " + (Номер - 1));
        КонецЕсли;
        
КонецЕсли;
    
    КоллекцияОбъектов.НоваяСтрока();
    КоллекцияОбъектов.Вид = Вид;
    КоллекцияОбъектов.Тип = "Телефон";
    КоллекцияОбъектов.Представление = Телефон;
    КоллекцияОбъектов.ЗначенияПолей = "НомерТелефона=" + Телефон + Симв(10);
    КоллекцияОбъектов.НомерТелефона = Телефон;
    
КонецЦикла;

В самом же ПКО такие ПКС, как "Телефон", остаются пустыми (в том плане, что не указан приемник, источник, никакого кода нет).

А у меня, как я переносила предыдущие реквизиты в () (ФИО и Должность), Список значений, и установка соответствий реквизитов Источника элементам СЗ происходит в ПКО "Контрагенты_КонтактныеЛица", а потом этот СЗ "передается" через ВыгрузитьПоПравилу() в ПКО "Контакты"...

В общем я запуталась, как мне это объединить, или что делать-то?
Мне в вызываемом из ПКГС алгоритме новый СЗ создавать, или использовать ранее созданный?
Или может можно вообще сразу из ПКО "Контрагенты_КонтактныеЛица" передавать в ПКГС ПКО "Контакты" созданный СЗ, и никакой Алгоритм не использовать?
Вопрос: Не запускается ссылка

Есть такое фрагмент кода.

    
    auth_md = "4b59e73d0603d44b2610ee223c949251";
    md_order = "i7fjh309";  
    Ном = Док.НомерДок;
    server_url = "easypost.aurama.ru";
    ДатаДок = "20"+Прав(Док.ДатаДок,2)+"-"+Сред(Док.ДатаДок,4,2)+"-"+Сред(Док.ДатаДок,1,2);
    АдресСервераОнлайнПроверки = server_url+"/api/v1/"+auth_md;
    РесурсНаСервере = "/orders_add/?orders="+"{
    |""Н001"": 
    |{
    |""ordertype"": 2,
    |""ordernumber"": """+Ном+""",
    |""date_from"": """+ДатаДок+""",
    |""time1_from"": ""10:00"",
    |""time2_from"": ""22:00"",
    |""date_to"": """ +ДатаДок+""",
    |""time1_to"": ""10:00"",
    |""time2_to"": ""22:00"",
    |""value"": 0,
    |""weight"": 1,
    |""pieces"": 1,
    |""comment"": """+СокрЛП("Тест")+""",
    |""appraised_value"": "+Строка(Окр(Док.Итог("СуммаСНДС"),2))+",
    |""COD_amount"": "+Строка(Окр(Док.Итог("СуммаСНДС"),2))+",
    |""cityfrom"": 82,
    |""streetfrom"": ""Сырецкая"",
    |""buildingfrom"": ""31"",
    |""clientnamefrom"": ""Гарна мама"",
    |""clientcontactfrom"": ""Филик Наталья"",
    |""clientphonefrom"": ""+380675035320"",
    |""cityto"": 82,
    |""streetto"": """+СокрЛП("Док.Улица")+""",
    |""buildingto"": """+СокрЛП("Док.Дом")+""",
    |""roomto"": """+СокрЛП("Док.Этаж")+""",
    |""clientnameto"": """+СокрЛП("Док.Получатель")+""",
    |""clientcontactto"": """+СокрЛП("Док.Получатель")+""",
    |""clientphoneto"": """+"+"+СокрЛП("Док.ТелефонПолучателя")+"""
    |}
    |}";

    
    ЗапуститьПриложение(Строка(АдресСервераОнлайнПроверки)+Строка(РесурсНаСервере));
    Сообщить(АдресСервераОнлайнПроверки+РесурсНаСервере);

Мы формируем ссылку и пробуем ее запустить в браузере
Ссылка не запускается и не выдается ошибка.
Но если ввести вручную сформировавшуюся ссылку в браузере, то все запускается и работает

Вот такую ссылку ввожу

easypost.aurama.ru/api/v1/4b59e73d0603d44b2610ee223c949251/orders_add/?orders={
"Н001":
{
"ordertype": 2,
"ordernumber": "РН-0000008",
"date_from": "2015-09-18",
"time1_from": "10:00",
"time2_from": "22:00",
"date_to": "2015-09-18",
"time1_to": "10:00",
"time2_to": "22:00",
"value": 0,
"weight": 1,
"pieces": 1,
"comment": "Тест",
"appraised_value": 461967.88,
"COD_amount": 461967.88,
"cityfrom": 82,
"streetfrom": "Сырецкая",
"buildingfrom": "31",
"clientnamefrom": "Гарна мама",
"clientcontactfrom": "Филик Наталья",
"clientphonefrom": "+380675035320",
"cityto": 82,
"streetto": "Док.Улица",
"buildingto": "Док.Дом",
"roomto": "Док.Этаж",
"clientnameto": "Док.Получатель",
"clientcontactto": "Док.Получатель",
"clientphoneto": "+Док.ТелефонПолучателя"
}
}
Ответ: () |""streetto"": """+СокрЛП("Док.Улица")+""",
Зачем обковычил тут СокрЛП("Док.Улица")?
Вопрос: Ошибка при создании XML файла ЗаписатьНачалоЭлемента

При создании XML файла ошибка:
{ОбщийМодуль.рар_Обмен.Модуль(1032)}: Ошибка при вызове метода контекста (ЗаписатьНачалоЭлемента)    ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentObject.ПоступлениеТоваровУслуг.Вручную");
по причине:
Ошибочный порядок записи XML
Гружу 2 документа 1 вида

Вот мой код:
ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentObject.ПоступлениеТоваровУслуг.Вручную");
    
    ЗаписатьXML(ЗаписьXML, Данные.Ссылка, "Ref", НазначениеТипаXML.Явное);
    
    ЗаписатьXML(ЗаписьXML, Данные.Номер, "Номер", НазначениеТипаXML.Явное);
    ЗаписатьXML(ЗаписьXML, Данные.Дата, "Дата", НазначениеТипаXML.Явное);
    ЗаписатьXMLВалюты(ЗаписьXML, Данные.ВалютаДокумента);

    ЗаписатьXML(ЗаписьXML, Данные.ВидОперации, "ВидОперации", НазначениеТипаXML.Явное);
    ЗаписатьXML(ЗаписьXML, Данные.ВидПоступления, "ВидыПоступленияТоваров", НазначениеТипаXML.Явное);
    ЗаписатьXML(ЗаписьXML, Данные.ДатаВходящегоДокумента, "ДатаВходящегоДокумента", НазначениеТипаXML.Явное);
    
    ЗаписатьXML(ЗаписьXML, Данные.Комментарий, "Комментарий", НазначениеТипаXML.Явное);
    
    ЗаписатьXMLКонтрагенты(ЗаписьXML, Данные.Контрагент);
    ЗаписатьXMLДоговорыКонтрагентов(ЗаписьXML, Данные.ДоговорКонтрагента);
    
    ЗаписатьXMLСправочникСсылкаИНаименованиеИерархия(ЗаписьXML, Данные.Подразделение, "Подразделения");
    ЗаписатьXML(ЗаписьXML, Данные.СуммаДокумента, "СуммаДокумента", НазначениеТипаXML.Явное);
    ЗаписатьXML(ЗаписьXML, "№ " + ОбщегоНазначения.ПолучитьНомерНаПечать(Данные.Ссылка) + " от " + Строка(Формат(Данные.Дата, "ДЛФ=Д")), "Представление", НазначениеТипаXML.Явное);    
    
    Если ВерсияОбмена<>"1" Тогда
        //Прикрепления

        Прикрепление=Прикрепления.Найти(Данные.Ссылка,"Объект");
        Если Прикрепление=Неопределено Тогда
            ЗаписатьXML(ЗаписьXML, Ложь, "ЕстьПрикрепления", НазначениеТипаXML.Явное);
            ЗаписатьXML(ЗаписьXML, "", "НаименованиеПрикрепления", НазначениеТипаXML.Явное);
            ЗаписатьXML(ЗаписьXML, "", "ИмяВХранилище", НазначениеТипаXML.Явное);
            ЗаписатьXML(ЗаписьXML, "", "УИДЦБ", НазначениеТипаXML.Явное);
            ЗаписатьXML(ЗаписьXML, 0, "Размер", НазначениеТипаXML.Явное);
        Иначе
            ЗаписатьXML(ЗаписьXML, Истина, "ЕстьПрикрепления", НазначениеТипаXML.Явное);
            ЗаписатьXML(ЗаписьXML, Прикрепление.Наименование, "НаименованиеПрикрепления", НазначениеТипаXML.Явное);
            ЗаписатьXML(ЗаписьXML, Прикрепление.ИмяВХранилище, "ИмяВХранилище", НазначениеТипаXML.Явное);
            ЗаписатьXML(ЗаписьXML, Строка(Прикрепление.Ссылка.УникальныйИдентификатор()), "УИДЦБ", НазначениеТипаXML.Явное);
            ЗаписатьXML(ЗаписьXML, Прикрепление.Размер, "Размер", НазначениеТипаXML.Явное);
        КонецЕсли;    
        //    

        ЗаписатьXML(ЗаписьXML, Строка(Данные.Ответственный), "Автор", НазначениеТипаXML.Явное);
    КонецЕсли;    
    
    ТЧ=Данные.Оборудование.Выгрузить();
    ТЧ.Сортировать("рар_Заказ,Номенклатура");
    ПредЗаказ="";
    Для Каждого СтрокаТЧ Из ТЧ Цикл
        ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentTabularSectionRow.ПоступлениеТоваровУслуг.Оборудование.Вручную");
        Если ВерсияОбмена<>"1" Тогда
            ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.ЕдиницаИзмерения), "ЕдиницаИзмерения", НазначениеТипаXML.Явное);
        Иначе    
            ЗаписатьXMLСправочникСсылкаИНаименование(ЗаписьXML, СтрокаТЧ.ЕдиницаИзмерения, "ЕдиницыИзмерения");
        КонецЕсли;    
        ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Количество, "Количество", НазначениеТипаXML.Явное);
        Если ВерсияОбмена<>"1" Тогда
            ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.Номенклатура), "Номенклатура", НазначениеТипаXML.Явное);
        Иначе    
            ЗаписатьXMLНоменклатура(ЗаписьXML, СтрокаТЧ.Номенклатура);
        КонецЕсли;    
        ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Сумма, "Сумма", НазначениеТипаXML.Явное);
        ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Цена, "Цена", НазначениеТипаXML.Явное);
        Если ВерсияОбмена<>"1" Тогда
            ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.рар_ВидРабот), "рар_ВидРабот", НазначениеТипаXML.Явное);
        Иначе    
            ЗаписатьXMLСправочникСсылкаИНаименованиеИерархия(ЗаписьXML, СтрокаТЧ.рар_ВидРабот, "рар_ВидыРабот");
        КонецЕсли;    
        Если ВерсияОбмена<>"1" Тогда
            Если ТипЗнч(СтрокаТЧ.рар_Заказ)=Тип("ДокументСсылка.ВнутреннийЗаказ") И ЗначениеЗаполнено(СтрокаТЧ.рар_Заказ) Тогда
                Если СтрокаТЧ.рар_Заказ<>ПредЗаказ Тогда
                    ЗаписатьXMLВнутреннийЗаказ(ЗаписьXML, СтрокаТЧ.рар_Заказ, Карты,Прикрепления,ВерсияОбмена);
                    ПредЗаказ=СтрокаТЧ.рар_Заказ;
                Иначе
                    ЗаписатьXML(ЗаписьXML, "УстановленоРанее", "рар_Заказ", НазначениеТипаXML.Явное);    
                КонецЕсли;    
            Иначе
                ЗаписатьXML(ЗаписьXML, "", "рар_Заказ", НазначениеТипаXML.Явное);    
            КонецЕсли;    
        КонецЕсли;
        ЗаписьXML.ЗаписатьКонецЭлемента();
    КонецЦикла;    
    
    ТЧ=Данные.Товары.Выгрузить();
    ТЧ.Сортировать("Заказ,Номенклатура");
    Для Каждого СтрокаТЧ Из ТЧ Цикл
        ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentTabularSectionRow.ПоступлениеТоваровУслуг.Товары.Вручную");
        Если ВерсияОбмена<>"1" Тогда
            ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.ЕдиницаИзмерения), "ЕдиницаИзмерения", НазначениеТипаXML.Явное);
        Иначе    
            ЗаписатьXMLСправочникСсылкаИНаименование(ЗаписьXML, СтрокаТЧ.ЕдиницаИзмерения, "ЕдиницыИзмерения");
        КонецЕсли;    
        ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Количество, "Количество", НазначениеТипаXML.Явное);
        Если ВерсияОбмена<>"1" Тогда
            ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.Номенклатура), "Номенклатура", НазначениеТипаXML.Явное);
        Иначе    
            ЗаписатьXMLНоменклатура(ЗаписьXML, СтрокаТЧ.Номенклатура);
        КонецЕсли;    
        ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Сумма, "Сумма", НазначениеТипаXML.Явное);
        ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Цена, "Цена", НазначениеТипаXML.Явное);        
        Если ВерсияОбмена<>"1" Тогда
            ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.рар_ВидРабот), "рар_ВидРабот", НазначениеТипаXML.Явное);
        Иначе    
            ЗаписатьXMLСправочникСсылкаИНаименованиеИерархия(ЗаписьXML, СтрокаТЧ.рар_ВидРабот, "рар_ВидыРабот");
        КонецЕсли;    
        Если ВерсияОбмена<>"1" Тогда
            Если ТипЗнч(СтрокаТЧ.Заказ)=Тип("ДокументСсылка.ВнутреннийЗаказ") И ЗначениеЗаполнено(СтрокаТЧ.Заказ) Тогда
                Если СтрокаТЧ.Заказ<>ПредЗаказ Тогда
                    ЗаписатьXMLВнутреннийЗаказ(ЗаписьXML, СтрокаТЧ.Заказ, Карты,Прикрепления,ВерсияОбмена);
                    ПредЗаказ=СтрокаТЧ.Заказ;
                Иначе
                    ЗаписатьXML(ЗаписьXML, "УстановленоРанее", "Заказ", НазначениеТипаXML.Явное);    
                КонецЕсли;    
            Иначе
                ЗаписатьXML(ЗаписьXML, "", "Заказ", НазначениеТипаXML.Явное);    
            КонецЕсли;    
        КонецЕсли;    
        ЗаписьXML.ЗаписатьКонецЭлемента();
    КонецЦикла;    
    
    ТЧ=Данные.Услуги.Выгрузить();
    ТЧ.Сортировать("Заказ,Номенклатура");
    Для Каждого СтрокаТЧ Из Данные.Услуги Цикл
        ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentTabularSectionRow.ПоступлениеТоваровУслуг.Услуги.Вручную");
        ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Количество, "Количество", НазначениеТипаXML.Явное);
        ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Сумма, "Сумма", НазначениеТипаXML.Явное);
        Если ВерсияОбмена<>"1" Тогда
            ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.Номенклатура), "Номенклатура", НазначениеТипаXML.Явное);
        Иначе    
            ЗаписатьXMLНоменклатура(ЗаписьXML, СтрокаТЧ.Номенклатура);
        КонецЕсли;    
        ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Цена, "Цена", НазначениеТипаXML.Явное);    
        Если ВерсияОбмена<>"1" Тогда
            ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.рар_ВидРабот), "рар_ВидРабот", НазначениеТипаXML.Явное);
        Иначе    
            ЗаписатьXMLСправочникСсылкаИНаименованиеИерархия(ЗаписьXML, СтрокаТЧ.рар_ВидРабот, "рар_ВидыРабот");
        КонецЕсли;    
        Если ВерсияОбмена<>"1" Тогда
            Если ТипЗнч(СтрокаТЧ.Заказ)=Тип("ДокументСсылка.ВнутреннийЗаказ") И ЗначениеЗаполнено(СтрокаТЧ.Заказ) Тогда
                Если СтрокаТЧ.Заказ<>ПредЗаказ Тогда
                    ЗаписатьXMLВнутреннийЗаказ(ЗаписьXML, СтрокаТЧ.рар_Заказ, Карты,Прикрепления,ВерсияОбмена);
                    ПредЗаказ=СтрокаТЧ.рар_Заказ;
                Иначе
                    ЗаписатьXML(ЗаписьXML, "УстановленоРанее", "Заказ", НазначениеТипаXML.Явное);    
                КонецЕсли;    
            Иначе
                ЗаписатьXML(ЗаписьXML, "", "Заказ", НазначениеТипаXML.Явное);    
            КонецЕсли;    
        КонецЕсли;
        ЗаписьXML.ЗаписатьКонецЭлемента();
    КонецЦикла;    
    
    Если ВерсияОбмена<>"1" Тогда
        Карта=Карты.НайтиСтроки(Новый Структура("Документ",Данные.Ссылка));
        Для каждого СтрокаТЧ из Карта Цикл
            ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentTabularSectionRow.ЗаказПоставщику.Карта.Вручную");
            ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Уровень, "Уровень", НазначениеТипаXML.Явное);
            ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Ответственный, "Ответственный", НазначениеТипаXML.Явное);
            ЗаписатьXML(ЗаписьXML, СтрокаТЧ.СостояниеУровня, "СостояниеУровня", НазначениеТипаXML.Явное);
            ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Комментарий, "Комментарий", НазначениеТипаXML.Явное);
            ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Исполнитель, "Исполнитель", НазначениеТипаXML.Явное);
            ЗаписатьXML(ЗаписьXML, СтрокаТЧ.ДатаВыполнения, "ДатаВыполнения", НазначениеТипаXML.Явное);
            ЗаписьXML.ЗаписатьКонецЭлемента();
        КонецЦикла;    
    КонецЕсли;
    // Записываем конец элемента.

    ЗаписьXML.ЗаписатьКонецЭлемента();


ЗаписьXML.Закрыть();
Ответ: () Показывай код, начиная с созднания ЗаписиХМЛ
Вопрос: Помогите с обработкой) ЗУП 3.1

Вот собственно Код.
#Область ТиповаяОбластьВПФ


Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление        = Представление; 
    НоваяКоманда.Идентификатор        = Идентификатор;
    НоваяКоманда.Использование        = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор          = Модификатор;
    
КонецПроцедуры

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

    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));//имя макета печ.формы

    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));//ВызовСерверногоМетода

    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    
    Возврат Команды;
    
КонецФункции

Функция СведенияОВнешнейОбработке() Экспорт
    
    МассивНазначений     = Новый Массив;
    МассивНазначений.Добавить("Документ.ПереносОтпуска");//Указываем документ к которому делаем внешнюю печ. форму

    
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");//может быть – ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов… 

    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "ООО Визир Перенос Отпуска Приказ");//имя под которым обработка будет зарегестрирована в справочнике внешних обработок

    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "9,0"); 
    ПараметрыРегистрации.Вставить("Информация", "ООО Визир Приказ о переносе отпуска"); 
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "ООО Визир Приказ о переносе отпуска",  "ПереносОтпускаПриказ", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
    
КонецФункции    // СведенияОВнешнейОбработке


Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПереносОтпускаПриказ") Тогда
        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПереносОтпускаПриказ", "Приказ о предоставлении дней дополнительного отдыха", ПечатьПриказ(МассивОбъектов[0], ОбъектыПечати, "ПереносОтпускаПриказ"));
    КонецЕсли;
    
КонецПроцедуры// Печать()

#КонецОбласти


Функция ПечатьПриказ(СсылкаНаОбъект, ОбъектыПечати,ИмяМакета)
    
    Макет          = ПолучитьМакет("Макет");
    ОбластьПриказа = Макет.ПолучитьОбласть("ОбластьПриказа");
    
    ДокументРезультат = Новый ТабличныйДокумент;
    ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ДокументРезультат.АвтоМасштаб = Истина;
    
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    Запрос.УстановитьПараметр("МассивСсылок", СсылкаНаОбъект);
    //Запрос.УстановитьПараметр("Период",       СсылкаНаОбъект.Дата);

    
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    ПереносОтпуска.КоличествоДней КАК КоличествоДней,
    |    ПереносОтпуска.ИсходнаяДатаНачала КАК ИсходнаяДатаНачала,
    |    ПереносОтпуска.ДатаОкончания КАК ДатаОкончания,
    |    ПереносОтпуска.Номер КАК НомерДокумента,
    |    ПереносОтпуска.Дата КАК ДатаДокумента,
    |    ПереносОтпуска.ДатаНачала КАК ДатаНачалаОтпуска,
    |    ПереносОтпуска.ДолжностьРуководителя КАК ДолжностьРуководителя,
    |    ПереносОтпуска.Руководитель.Фамилия КАК ФамилияРуководителя,
    |    ПереносОтпуска.Руководитель.Имя КАК ИмяРуководителя,
    |    ПереносОтпуска.Руководитель.Отчество КАК ОтчествоРуководителя,
    |    ПереносОтпуска.ФизическоеЛицо.Фамилия КАК Фамилия,
    |    ПереносОтпуска.ФизическоеЛицо.Имя КАК Имя,
    |    ПереносОтпуска.ФизическоеЛицо.Отчество КАК Отчество,
    |    ПереносОтпуска.ФизическоеЛицо.ФИО КАК ФИО,
    |    ГрафикОтпусков.Номер КАК НомерГрафикаОтпуска,
    |    ГрафикОтпусков.Дата КАК ДатаГрафикаОтпуска,
    |    ПереносОтпуска.ПричинаПереноса КАК ПричинаПереноса,
    |    ГрафикОтпусков.Организация.НаименованиеПолное КАК Организация,
    |    ПриемНаРаботу.ДолжностьПоШтатномуРасписанию КАК Штатка,
    |    ПриемНаРаботу.Должность КАК Должность,
    |    ПриемНаРаботу.Подразделение КАК Подразделение
    |ИЗ
    |    Документ.ПереносОтпуска КАК ПереносОтпуска
    |        ПОЛНОЕ СОЕДИНЕНИЕ Документ.ГрафикОтпусков.Сотрудники КАК ГрафикОтпусковСотрудники
    |            ПОЛНОЕ СОЕДИНЕНИЕ Документ.ГрафикОтпусков КАК ГрафикОтпусков
    |            ПО ГрафикОтпусковСотрудники.Ссылка = ГрафикОтпусков.Ссылка
    |        ПО (ГрафикОтпусковСотрудники.Сотрудник = ПереносОтпуска.Сотрудник)
    |        ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботу КАК ПриемНаРаботу
    |        ПО (ПриемНаРаботу.Сотрудник = ПереносОтпуска.Сотрудник)
    |ГДЕ
    |    ПереносОтпуска.Ссылка В(&МассивСсылок)";
    
                         
    Результат = Запрос.Выполнить();
    
    ДанныеДокументов = Новый Массив;
    Если Результат.Пустой() Тогда
        Возврат ДанныеДокументов;
    КонецЕсли;
    
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    Выборка.Следующий();
        ОбластьПриказа.Параметры.ФИОСотрудника          = Падеж (Выборка.ФИО,-2);
        //ФизическиеЛицаЗарплатаКадры.Просклонять(Выборка.ФИОПолные, 2, ОбластьПриказа.Параметры.ФИОСотрудника, Выборка.Пол);

        //ФизическиеЛицаЗарплатаКадры.Просклонять(Выборка.ФИОПолные, 2, ОбластьПриказа.Параметры.ФИОСотрудника2, Выборка.Пол);

        ОбластьПриказа.Параметры.ФИОСотрудника2         = Падеж (Выборка.ФИО,-2);
        ОбластьПриказа.Параметры.Организация            = Выборка.Организация;
        Строка = Выборка.Штатка;
        МногострочнаяСтрока = СтрЗаменить (Строка,"/",Символы.ПС);
        Результат = СтрПолучитьСтроку(МногострочнаяСтрока,3);
        ОбластьПриказа.Параметры.Штатка                 = ПадежП (Результат,2);
        ОбластьПриказа.Параметры.ПричинаПереноса        = НРЕГ(Выборка.ПричинаПереноса);
        ОбластьПриказа.Параметры.КоличествоДней         = Выборка.КоличествоДней;
        //ОбластьПриказа.Параметры.Дата                   = Формат (Выборка.ДатаДокумента,"ДЛФ=ДД");

        ОбластьПриказа.Параметры.Должность              = ПадежП (Выборка.Должность,2);
        ОбластьПриказа.Параметры.Дата                   = Формат (Выборка.ДатаДокумента,"ДФ='''«''dd''»'' MMMM yyyy '");
        ОбластьПриказа.Параметры.Подразделение          = НРЕГ (ПадежП (Выборка.Подразделение,2));
        ОбластьПриказа.Параметры.НомерДокумента         = Выборка.НомерДокумента;
        ОбластьПриказа.Параметры.ДатаНачалаОтпуска      = Формат (Выборка.ИсходнаяДатаНачала,"ДФ=dd.MM.yyyy");
        ОбластьПриказа.Параметры.ДатаПеренесенная       = Формат (Выборка.ДатаНачалаОтпуска,"ДФ=dd.MM.yyyy");
        ОбластьПриказа.Параметры.ДолжностьРуководителя  = Выборка.ДолжностьРуководителя;
        ОбластьПриказа.Параметры.Фамилия                = Выборка.Фамилия;
        ОбластьПриказа.Параметры.Имя                    = Лев (Выборка.Имя, 1);
        ОбластьПриказа.Параметры.Отчество               = Лев (Выборка.Отчество, 1);
        ОбластьПриказа.Параметры.ФамилияРуководителя    = Выборка.ФамилияРуководителя;
        ОбластьПриказа.Параметры.ИмяРуководителя        = Лев (Выборка.ИмяРуководителя, 1);
        ОбластьПриказа.Параметры.ОтчествоРуководителя   = Лев (Выборка.ОтчествоРуководителя, 1);
        ОбластьПриказа.Параметры.НомерГрафикаОтпуска    = Выборка.НомерГрафикаОтпуска;
        ОбластьПриказа.Параметры.ДатаГрафикаОтпуска     = Формат (Выборка.ДатаГрафикаОтпуска, "ДФ=dd.MM.yyyy");
        ОбластьПриказа.Параметры.Дата2                  = Формат (Выборка.ДатаДокумента,"ДЛФ=Д"); 
        
        
    КонецЦикла;
        
    ДокументРезультат.Вывести(ОбластьПриказа);
    Возврат ДокументРезультат;
КонецФункции

//- фамилия, имя или отчество или всё сразу в нужном падеже 

// !42! Осел + Соловей + Воробей + Немец + Кормилец + Силиец// !41! отчества оканчивающиеся на "ы" считаются женскими ? 

// Функция для склонения одного слова!!!// z1 - само слово 

// z2 - номер падежа// z3 - пол 

// z4 - 1-склонять как фамилию, 2-имя, 3-отчество
Функция ПадежС(z1,Знач z2=2,Знач z3="*",z4=0) Экспорт
    z5=Найти(z1,"-");
    z6=?(z5=0,"","-"+ПадежС(Сред(z1,z5+1,СтрДлина(z1)-z5+1),z2,z3,z4));
    z1=НРег(?(z5=0,z1,Лев(z1,z5-1)));
    z7=Прав(z1,3);z8=Прав(z7,2);z9=Прав(z8,1);
    z5=СтрДлина(z1);
    za=Найти("ая ия ел ок яц ий па да ца ша ба та га ка",z8);
    zb=Найти("аеёийоуэюяжнгхкчшщ",Лев(z7,1));
    zc=Макс(z2,-z2);
    zd=?(za=4,5,Найти("айяь",z9));
    zd=?((zc=1)или(z9=".")или((z4=2)и(Найти("оиеу"+?(z3="ч","","бвгджзклмнпрстфхцчшщъ"),z9)>0))или((z4=1)и(Найти("мия мяэ лия кия жая лея",z7)>0)),9,?((zd=4)и(z3="ч"),2,?(z4=1,?(Найти("оеиую",z9)+Найти("их ых аа еа ёа иа оа уа ыа эа юа яа",z8)>0,9,?(z3<>"ч",?(za=1,7,?(z9="а",?(za>18,1,6),9)),?(((Найти("ой ый",z8)>0)и(z5>4)и(Прав(z1,4)<>"опой"))или((zb>10)и(za=16)),8,zd))),zd)));
    ze=Найти("лец вей бей дец пец мец нец рец вец аец иец ыец бер",z7);
    zf=?((zd=8)и(zc<>5),?((zb>15)или(Найти("жий ний",z7)>0),"е","о"),?(z1="лев","ьв",?((Найти("аеёийоуэюя",Сред(z1,z5-3 ,1))=0)и((zb>11)или(zb=0))и(ze<>45),"",?(za=7,"л",?(za=10,"к",?(za=13,"йц",?(ze=0,"",?(ze<12,"ь"+?(ze=1,"ц",""),?(ze<37,"ц",?(ze<49,"йц","р"))))))))));
    //  zf=?((zd=9)или((z4=3)и(z3="ы")),z1,Лев(z1,z5-?((zd>6)или(zf<>""),2,?(zd>0,1,0)))+zf+СокрП(Сред("а у а "+Сред("оыые",Найти("внч",z9)+1,1)+"ме "+?(Найти("гжкхш",Лев(z8,1))>0,"и","ы")+" е у ойе я ю я ем"+?(za=16,"и","е")+" и е ю ейе и и ь ьюи и и ю ейи ойойу ойойойойуюойойгомуго"+?((zf="е")или(za=16)или((zb>12)и(zb<16)),"и","ы")+"мм",10*zd+2*zc-3,2)));

    zf=?((zd=9)или((z4=3)и(Прав(z1,1)="ы")),z1,Лев(z1,z5-?((zd>6)или(zf<>""),2,?(zd>0,1,0)))+zf+СокрП(Сред("а у а "+Сред("оыые",Найти("внч",z9)+1,1)+"ме "+?(Найти("гжкхш",Лев(z8,1))>0,"и","ы")+" е у ойе я ю я ем"+?(za=16,"и","е")+" и е ю ейе и и ь ьюи и и ю ейи ойойу ойойойойуюойойгомуго"+?((zf="е")или(za=16)или((zb>12)и(zb<16)),"и","ы")+"мм",10*zd+2*zc-3,2)));
    Возврат ?(""=z1,"",?(z4>0,ВРег(Лев(zf,1))+?((z2<0)и(z4>1),".",Сред(zf,2)),zf)+z6);
КонецФункции

//_____________________________________________________________________________ 

// z1 - фамилия имя отчество например Железняков Юрий Юрьевич 
// z2 - Падеж ( по  умолчанию = 2 - родительный) 

// 2 - родительный  ( нет кого?    ) Железнякова Юрия Юрьевича      // 3 - дательный    ( кому?        ) Железнякову Юрию Юрьевичу  

// 4 - винительный  ( вижу кого?   ) Железнякова Юрия Юрьевича  // 5 - творительный ( кем?         ) Железняковым Юрием Юрьевичем     

// 6 - предложный   ( о ком?       ) Железнякове Юрии Юрьевиче  // Если задать Z2 меньше 0, то на выходе получим от -1=Железняков Ю. Ю. до -6=Железнякове Ю. Ю. 

// z3 - параметр Пол может не указываться, но при наличии фамилий с  // инициалами точное определение пола невозможно, поэтому предлагается задавать пол этим 

// параметром  1 - мужской 2 - женский  // ДЛЯ СКЛОНЕНИЯ ПРОФЕССИЙ ИСПОЛЬЗУЙТЕ ФУНКЦИЮ ПАДЕЖП И БУДЕТ ВАМ СЧАСТЬЕ! 

// ---------------------------------------------------------------------------------------// Бибик Галушка Цой Николайчик Наталия Петровна Герценберг Кривошей Капица-Метелица 

// Если Падеж(Фио ,1 ,3),       то на выходе получим Фамилия Имя Отчество и т.д.// Если Падеж(Фио ,1 ,3,"1" ),  то                   Фамилия  

// Если Падеж(Фио ,1 ,3,"2" ),  то                   Имя  // Если Падеж(Фио ,1 ,3,"3" ),  то                   Отчество  

// Если Падеж(Фио, 1 ,3,"12" ), то                   Фамилия Имя  // Если Падеж(Фио, 1 ,3,"23" ), то                   Имя Отчество  

// Если Падеж(Фио,-1 ,3,"231" ),то                   И. О. Фамилия  // Если Падеж(Фио,-1 ,3,"23" ), то                   И. О.   

// 10-11-2003 3-20
Функция Падеж(z1,z2=2,z3=3,z4="123",z5=1) Экспорт
    z6=Нрег(Прав(СокрП(z1),4));
    z7=Прав(z6,1);
    Возврат?(z5<4,Падеж(СокрЛП(СтрЗаменить(Сред(z1,Найти(z1+" "," ")+1),".",". ")),z2,z3,СтрЗаменить(z4,z5,ПадежС(?((z5=3)и(z7="ы"),z1,Лев(z1,Найти(z1+" "," ")-1)),z2,Сред("ча"+z7,?(z3=3,?(z6="оглы",1,?(z6="кызы",1,3)),z3),1),z5)+" "),z5+1),z4);
КонецФункции

Функция ПадежП(Знач z1,Знач z2,z3=0) Экспорт
    z1=СокрЛП(z1);z4=Найти(z1+" "," ")+1;z5=Лев(z1,z4-2);z6=Прав(z5,2);
    z7=?((Найти("ая ий ый",z6)>0)и(Найти("ющий нный",Сред(z1,z4-5,4))=0)и(z3=0),"1","*");
    Возврат НРег(?((z6="ая")или(Прав(z6,1)="а"),ПадежС(z5,z2,z7,1)+" "+ПадежС(Сред(z1,z4),z2),ПадежС(z5,z2,"ч",1)+?((z6="ий")и(Найти(z1," ")=0),""," "+?(z7="1",ПадежП(Сред(z1,z4),z2,Число(z7)),Сред(z1,z4)))));
КонецФункции



Дело в том что есть два графика отпуска. И эта обработка не правильно выдает номер графика.
Ответ: () да, и почему-то там если отчество заканчивается на "ы", то значит женский род. Что это за отчества на "ы"?
Вопрос: КД2, выгрузка элементов зарегистрированых "по ссылке"

КД2,

пишу правила, есть документ, в котором реквизиты выгружаются "по ссылке" (то есть в файле только поля поиска), но при этом в приемнике при этом возникают "объект не найден". Конечно можно Установить галочку "не выгружать объекты свойств по ссылкам" и в каждом свойстве написать обработчик "после выгрузки" 

ВыгрузитьПоПравилу(Значение,,,,ИмяПКО)

но тогда мы в каждом пакете выгружаем все объекты вне зависимости нужны они нам или нет...

слышал, что данную проблему решают через два разных плана обмена, но что то не очень мне это нравится...

Как Вы решаете эту проблему?
Ответ: короче я хочу пойти мудреным путем...

в случае если в получателе НСИ не найден - я его буду создавать програмно (только гуид, так сказать резерв делаю), регистрировать в получателе для обмена в обратную сторону.

а в источнике при получении пакета мне будет приходить НСИ которую я буду регистрировать для нормальной отправки в получатель (там уже есть резерв и мне только поля заполнить останется).

такая многоступенчатая хрень... правда тут будет возникать вопрос с тем кога можно будет проводить полученные документы (а проводить их можно только когда нет зарегестрированой НСИ)
Вопрос: Отчет по услугам

Доброе утро, проблема такая: в отчете если стоит галочка, то все работы нужно вывести в одной строке, при этом, описание и меры нужно выводить только 1 раз. Не понимаю, как это сделать?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
Процедура СформироватьНаСервере()
    
    ТабДок = Элементы.ТабДок;
    ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
    ТабДок.АвтоМасштаб = Истина;
    ТабДок.ТолькоПросмотр = Истина;
    
    Макет =  РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
    ТитульныйЛист = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ТитульныйЛист");
    
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
    ОбластьДокумент = ТитульныйЛист.ПолучитьОбласть("Документ");
    
    ОписаниеЗаполнено = ЛОЖЬ;
    ОбластьСтрока.Параметры.Описание = "";
    ОПомещении = "";
    Ссылка = "";
    Свойство1 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Описание инциндента");
    Свойство2 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Принятые меры");
            
    ОбластьДокумент.Параметры.НачалоПериода = Формат(Объект.НачалоПериода, "ДЛФ=Д");
    ОбластьДокумент.Параметры.КонецПериода = Формат(Объект.КонецПериода, "ДЛФ=Д");
    ОбластьДокумент.Параметры.ИНН = Объект.Организация.ИНН;
    ОбластьДокумент.Параметры.КПП = Объект.Организация.КПП;
    ОбластьДокумент.Параметры.ОГРН = Объект.Организация.ОГРН;
    ОбластьДокумент.Параметры.Адрес = ЗаполнитьАдрес();
    ОбластьДокумент.Параметры.Наименование = Объект.Организация.Наименование;
    ОбластьДокумент.Параметры.ПолноеНаименование = Объект.Организация.НаименованиеПолное;
    ТабДок.Вывести(ОбластьДокумент);
    
    ТабДок.Вывести(ОбластьШапка); 
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ЗаказПокупателя.Номер КАК Номер,
                   |    ЗаказПокупателя.Дата КАК Дата,
                   |    ЗаказПокупателя.Автор КАК Автор,
                   |    ЗаказПокупателя.СостояниеЗаказа КАК Статус,
                   |    ЗаказПокупателя.ОУ_Арендатор КАК Арендатор,
                   |    ЗаказПокупателя.ОУ_ПлановыйЗаказ КАК Плановый,
                   |    ЗаказПокупателя.Ссылка КАК Ссылка,
                   |    ЗаказПокупателя.ОУ_Постановщик КАК Постановщик,
                   |    ЗаказПокупателя.Контрагент КАК Контрагент
                   |ИЗ
                   |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
                   |ГДЕ
                   |    ЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода
                   |    И ЗаказПокупателя.Проведен = ИСТИНА
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Номер";
                   
    Запрос.УстановитьПараметр("НачалоПериода",Объект.НачалоПериода);
    Запрос.УстановитьПараметр("КонецПериода",Объект.КонецПериода);
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        ОПомещении = "";
        Ссылка = Выборка.Ссылка;
        
        СтруктураСтроки = Новый Структура("Номер, Дата, Статус, Заявитель, Автор, ЗаказНаряд, Постановщик, Плановый, Описание, Меры");
        
        СтруктураСтроки.Номер = Выборка.Номер;
        СтруктураСтроки.Дата = Формат(Выборка.Дата, "ДЛФ=Д");
        СтруктураСтроки.Статус = Выборка.Статус;
        
        Если ЗначениеЗаполнено(Выборка.Арендатор) Тогда 
            СтруктураСтроки.Заявитель = Выборка.Арендатор;
        Иначе 
            СтруктураСтроки.Заявитель = Выборка.Контрагент;
        КонецЕсли;
        
        СтруктураСтроки.Автор = Выборка.Автор;
        
        СтруктураСтроки.ЗаказНаряд = Выборка.Ссылка;
        
        Если ЗначениеЗаполнено(Выборка.Постановщик) Тогда 
            СтруктураСтроки.Постановщик = ", " + Выборка.Постановщик;
        Иначе 
            СтруктураСтроки.Постановщик = "";
        КонецЕсли;
        
        Если Выборка.Плановый = ИСТИНА Тогда 
            СтруктураСтроки.Плановый = "Плановый. " 
        Иначе 
            СтруктураСтроки.Плановый = "";
        КонецЕсли;
        
        //////////////////////////////////////
                        
        ЗапросОписание = Новый Запрос;
        ЗапросОписание.Текст = "ВЫБРАТЬ
                               |    ЗаказПокупателяДополнительныеРеквизиты.Свойство КАК Свойство,
                               |    ЗаказПокупателяДополнительныеРеквизиты.Значение КАК Значение
                               |ИЗ
                               |    Документ.ЗаказПокупателя.ДополнительныеРеквизиты КАК ЗаказПокупателяДополнительныеРеквизиты
                               |ГДЕ
                               |    ЗаказПокупателяДополнительныеРеквизиты.Ссылка = &Ссылка";
                               
        ЗапросОписание.УстановитьПараметр("Ссылка", Ссылка);
        ВыборкаОписание = ЗапросОписание.Выполнить().Выбрать();
        Пока ВыборкаОписание.Следующий() Цикл
            Если ВыборкаОписание.Свойство = Свойство1 ИЛИ ВыборкаОписание.Свойство = Свойство2 Тогда
                Если ВыборкаОписание.Свойство = Свойство1 Тогда 
                    СтруктураСтроки.Описание = "Описание инцидента: " + ВыборкаОписание.Значение + "; ";
                Иначе 
                    СтруктураСтроки.Меры = "Принятые меры: " + ВыборкаОписание.Значение + "; ";
                КонецЕсли;                                  
            КонецЕсли;  
        КонецЦикла;
        
        ЗапросРаботы = Новый Запрос;
        ЗапросРаботы.Текст = "ВЫБРАТЬ
                             |  ЗаказПокупателяОУ_ИсполнителиРаботы.Работа КАК Работа,
                             |  ЗаказПокупателяОУ_Оборудование.Оборудование КАК Оборудование,
                             |  ЗаказПокупателяОУ_Помещения.Помещение КАК Помещение,
                             |  ЗаказПокупателяОУ_Помещения.Помещение.Этаж КАК Этаж,
                             |  ЗаказПокупателяОУ_Помещения.Помещение.Ось КАК Ось,
                             |  ЗаказПокупателяОУ_Помещения.Помещение.Отметка КАК Отметка,
                             |  ЗаказПокупателяОУ_ИсполнителиРаботы.Ссылка КАК Документ
                             |ИЗ
                             |  Документ.ЗаказПокупателя.ОУ_ИсполнителиРаботы КАК ЗаказПокупателяОУ_ИсполнителиРаботы
                             |      ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ОУ_Оборудование КАК ЗаказПокупателяОУ_Оборудование
                             |          ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ОУ_Помещения КАК ЗаказПокупателяОУ_Помещения
                             |          ПО ЗаказПокупателяОУ_Оборудование.КлючПомещения = ЗаказПокупателяОУ_Помещения.КлючСтроки
                             |      ПО ЗаказПокупателяОУ_ИсполнителиРаботы.КлючОборудования = ЗаказПокупателяОУ_Оборудование.КлючОборудования
                             |ГДЕ
                             |  ЗаказПокупателяОУ_Помещения.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
                             |  И ЗаказПокупателяОУ_ИсполнителиРаботы.Ссылка = &Ссылка";
                             
                             Если Объект.Соединить Тогда ЗапросРаботы.Текст = ЗапросРаботы.Текст + "
                             |ИТОГИ ПО Документ";
                             КонецЕсли;
                   
        ЗапросРаботы.УстановитьПараметр("НачалоПериода",Объект.НачалоПериода);
        ЗапросРаботы.УстановитьПараметр("КонецПериода",Объект.КонецПериода);
        ЗапросРаботы.УстановитьПараметр("Ссылка", Ссылка);
        
        ВыборкаРаботы = ЗапросРаботы.Выполнить().Выбрать();
        
        Пока ВыборкаРаботы.Следующий() Цикл
            
            ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, СтруктураСтроки);
            
            ОбластьСтрока.Параметры.Работа = "Работа: " + ВыборкаРаботы.Работа + "; ";
            ОбластьСтрока.Параметры.Оборудование = "Оборудование: " + ВыборкаРаботы.Оборудование + "; ";
            ОбластьСтрока.Параметры.Помещение = "Помещение: " + ВыборкаРаботы.Помещение + ". "; 
            
            ОПомещении = "(";
            Если ЗначениеЗаполнено(ВыборкаРаботы.Этаж) Тогда ОПомещении = ОПомещении + "Этаж: " + ВыборкаРаботы.Этаж + "; "; 
            КонецЕсли;
                
            Если ЗначениеЗаполнено(ВыборкаРаботы.Ось) Тогда ОПомещении = ОПомещении + "Ось: " + ВыборкаРаботы.Ось + "; ";
            КонецЕсли;
            
            Если ЗначениеЗаполнено(ВыборкаРаботы.Отметка) Тогда ОПомещении = ОПомещении + "Отметка: " + ВыборкаРаботы.Отметка + "; ";
            КонецЕсли;
            ОПомещении = ОПомещении + ")";
            
            Если ОПомещении = "()" Тогда ОбластьСтрока.Параметры.ОПомещении = "" Иначе ОбластьСтрока.Параметры.ОПомещении = ОПомещении;
            КонецЕсли;
            
            ТабДок.Вывести(ОбластьСтрока);
                    
            ОбластьСтрока.Параметры.ОПомещении = "";
            ОбластьСтрока.Параметры.Работа = "";
            ОбластьСтрока.Параметры.Оборудование = "";
            ОбластьСтрока.Параметры.Помещение = "";
        КонецЦикла;
        
        Если ВыборкаРаботы.Количество() = 0 Тогда
            ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, СтруктураСтроки); 
            ТабДок.Вывести(ОбластьСтрока);
        КонецЕсли;
        
        ОбластьСтрока.Параметры.Описание = "";
        ОбластьСтрока.Параметры.Меры =  "";
        ОбластьСтрока.Параметры.Постановщик = "";
        ОбластьСтрока.Параметры.Плановый = "";
    КонецЦикла;
 
КонецПроцедуры
Ответ: Разобралась. Вынесла в отдельную процедуру. Может кому поможет
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
Процедура СоединитьЗаказы (ОбластьСтрока)
    
    ОбластьСтрока.Параметры.РабОбщ = "";
    ОписаниеЗаполнено = ЛОЖЬ;
    ОбластьСтрока.Параметры.Описание = "";
    ОПомещении = "";
    Ссылка = "";
    Свойство1 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Описание инциндента");
    Свойство2 = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Принятые меры");
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ЗаказПокупателя.Номер КАК Номер,
                   |    ЗаказПокупателя.Дата КАК Дата,
                   |    ЗаказПокупателя.Автор КАК Автор,
                   |    ЗаказПокупателя.СостояниеЗаказа КАК Статус,
                   |    ЗаказПокупателя.ОУ_Арендатор КАК Арендатор,
                   |    ЗаказПокупателя.ОУ_ПлановыйЗаказ КАК Плановый,
                   |    ЗаказПокупателя.Ссылка КАК Ссылка,
                   |    ЗаказПокупателя.ОУ_Постановщик КАК Постановщик,
                   |    ЗаказПокупателя.Контрагент КАК Контрагент
                   |ИЗ
                   |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
                   |ГДЕ
                   |    ЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода
                   |    И ЗаказПокупателя.Проведен = ИСТИНА
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    Номер";
                   
    Запрос.УстановитьПараметр("НачалоПериода",Объект.НачалоПериода);
    Запрос.УстановитьПараметр("КонецПериода",Объект.КонецПериода);
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        ОПомещении = "";
        Ссылка = Выборка.Ссылка;
        
        СтруктураСтроки = Новый Структура("Номер, Дата, Статус, Заявитель, Автор, ЗаказНаряд, Постановщик, Плановый, Описание, Меры");
        
        СтруктураСтроки.Номер = Выборка.Номер;
        СтруктураСтроки.Дата = Формат(Выборка.Дата, "ДЛФ=Д");
        СтруктураСтроки.Статус = Выборка.Статус;
        СтруктураСтроки.Автор = Выборка.Автор;
        
        Если ЗначениеЗаполнено(Выборка.Арендатор) Тогда 
            СтруктураСтроки.Заявитель = Выборка.Арендатор;
        Иначе 
            СтруктураСтроки.Заявитель = Выборка.Контрагент;
        КонецЕсли;  
        
        СтруктураСтроки.ЗаказНаряд = Выборка.Ссылка;
        
        Если ЗначениеЗаполнено(Выборка.Постановщик) Тогда 
            СтруктураСтроки.Постановщик = ", " + Выборка.Постановщик;
        Иначе 
            СтруктураСтроки.Постановщик = "";
        КонецЕсли;
        
        Если Выборка.Плановый = ИСТИНА Тогда 
            СтруктураСтроки.Плановый = "Плановый. " 
        Иначе 
            СтруктураСтроки.Плановый = "";
        КонецЕсли;
        
        //////////////////////////////////////
                        
        ЗапросОписание = Новый Запрос;
        ЗапросОписание.Текст = "ВЫБРАТЬ
                               |    ЗаказПокупателяДополнительныеРеквизиты.Свойство КАК Свойство,
                               |    ЗаказПокупателяДополнительныеРеквизиты.Значение КАК Значение
                               |ИЗ
                               |    Документ.ЗаказПокупателя.ДополнительныеРеквизиты КАК ЗаказПокупателяДополнительныеРеквизиты
                               |ГДЕ
                               |    ЗаказПокупателяДополнительныеРеквизиты.Ссылка = &Ссылка";
                               
        ЗапросОписание.УстановитьПараметр("Ссылка", Ссылка);
        ВыборкаОписание = ЗапросОписание.Выполнить().Выбрать();
        Пока ВыборкаОписание.Следующий() Цикл
            Если ВыборкаОписание.Свойство = Свойство1 ИЛИ ВыборкаОписание.Свойство = Свойство2 Тогда
                Если ВыборкаОписание.Свойство = Свойство1 Тогда 
                    СтруктураСтроки.Описание = "Описание инцидента: " + ВыборкаОписание.Значение + "; ";
                Иначе 
                    СтруктураСтроки.Меры = "Принятые меры: " + ВыборкаОписание.Значение + "; ";
                КонецЕсли;                                  
            КонецЕсли;  
        КонецЦикла;
                
        //////////////////////////////////////////////////////////////
        
        ЗапросРаботы = Новый Запрос;
        ЗапросРаботы.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                             |  ЗаказПокупателяОУ_ИсполнителиРаботы.Работа КАК Работа,
                             |  ЗаказПокупателяОУ_Оборудование.Оборудование КАК Оборудование,
                             |  ЗаказПокупателяОУ_Помещения.Помещение КАК Помещение,
                             |  ЗаказПокупателяОУ_Помещения.Помещение.Этаж КАК Этаж,
                             |  ЗаказПокупателяОУ_Помещения.Помещение.Ось КАК Ось,
                             |  ЗаказПокупателяОУ_Помещения.Помещение.Отметка КАК Отметка,
                             |  ЗаказПокупателяОУ_ИсполнителиРаботы.Статус,
                             |  ЗаказПокупателяОУ_ИсполнителиРаботы.Ссылка КАК Документ
                             |ИЗ
                             |  Документ.ЗаказПокупателя.ОУ_ИсполнителиРаботы КАК ЗаказПокупателяОУ_ИсполнителиРаботы
                             |      ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ОУ_Оборудование КАК ЗаказПокупателяОУ_Оборудование
                             |          ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.ОУ_Помещения КАК ЗаказПокупателяОУ_Помещения
                             |          ПО ЗаказПокупателяОУ_Оборудование.КлючПомещения = ЗаказПокупателяОУ_Помещения.КлючСтроки
                             |      ПО ЗаказПокупателяОУ_ИсполнителиРаботы.КлючОборудования = ЗаказПокупателяОУ_Оборудование.КлючОборудования
                             |ГДЕ
                             |  ЗаказПокупателяОУ_Помещения.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
                             |  И ЗаказПокупателяОУ_ИсполнителиРаботы.Ссылка = &Ссылка
                             |ИТОГИ ПО
                             |  Документ";  
                         
        ЗапросРаботы.УстановитьПараметр("НачалоПериода",Объект.НачалоПериода);
        ЗапросРаботы.УстановитьПараметр("КонецПериода",Объект.КонецПериода);
        ЗапросРаботы.УстановитьПараметр("Ссылка", Ссылка);
        
        ВыборкаРаботы = ЗапросРаботы.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаРаботы.Следующий() Цикл
            Выбор = ВыборкаРаботы.Выбрать();
            
            Пока Выбор.Следующий() Цикл             
                ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, СтруктураСтроки);    
                
                Если ЗначениеЗаполнено(Выбор.Работа) Тогда 
                    ОбластьСтрока.Параметры.РабОбщ = ОбластьСтрока.Параметры.РабОбщ + "Работа: " + Выбор.Работа + "; ";
                КонецЕсли;
                Если ЗначениеЗаполнено(Выбор.Оборудование) Тогда 
                    ОбластьСтрока.Параметры.РабОбщ = ОбластьСтрока.Параметры.РабОбщ + "Оборудование: " + Выбор.Оборудование + "; ";
                КонецЕсли;
                Если ЗначениеЗаполнено(Выбор.Помещение) Тогда 
                    ОбластьСтрока.Параметры.РабОбщ = ОбластьСтрока.Параметры.РабОбщ + "Помещение: " + Выбор.Помещение + "; ";
                КонецЕсли;
                
                ОбластьСтрока.Параметры.РабОбщ = ОбластьСтрока.Параметры.РабОбщ + Символы.ПС;
                
                ОПомещении = "(";
                Если ЗначениеЗаполнено(Выбор.Этаж) Тогда 
                    ОПомещении = ОПомещении + "Этаж: " + Выбор.Этаж + "; "; 
                КонецЕсли;                  
                Если ЗначениеЗаполнено(Выбор.Ось) Тогда 
                    ОПомещении = ОПомещении + "Ось: " + Выбор.Ось + "; ";
                КонецЕсли;              
                Если ЗначениеЗаполнено(Выбор.Отметка) Тогда 
                    ОПомещении = ОПомещении + "Отметка: " + Выбор.Отметка + "; ";
                КонецЕсли;
                ОПомещении = ОПомещении + ")";              
                Если ОПомещении = "()" Тогда 
                ОбластьСтрока.Параметры.ОПомещении = "" Иначе ОбластьСтрока.Параметры.ОПомещении = ОПомещении;
                КонецЕсли;
    
                КонецЦикла;                 
                            
            ТабДок.Вывести(ОбластьСтрока);
                        
            ОбластьСтрока.Параметры.Описание = "";          
            ОбластьСтрока.Параметры.Постановщик = "";
            ОбластьСтрока.Параметры.Плановый = "";          
            ОбластьСтрока.Параметры.ОПомещении = "";
            ОбластьСтрока.Параметры.РабОбщ = "";
                
        КонецЦикла; 
        
        Если ВыборкаРаботы.Количество() = 0 Тогда
                ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, СтруктураСтроки); 
                ТабДок.Вывести(ОбластьСтрока);
        КонецЕсли;
 
    КонецЦикла; 
КонецПроцедуры
Вопрос: ограничение доступа на чтение элементов справочника "Номенклатура" УТ 11.1

Поделитесь, пожалуйста, примером разграничения доступа на чтение к "Номенклатуре".

Конфигурация: УТ 11.1, Тонкий клиент, платф. 8.3

Описание задачи: В базе есть несколько пользователей с привязкой к организации (каждый пользователь ведет учет по своей организации). Штатными средствами разграничены права пользователей, в том числе и права на доступ/изменение справочника "Номенклатуры" (Номенклатура привязана к "ГруппамДоступаНоменклатуры"). Необходимо разграничить доступ на чтение номенклатуры (скрыть видимость номенклатуры для пользователей - каждый видит только свою номенклатуру).
Пробовал копировать шаблоны ограничений в ролях с правами на изменение/чтение номенклатуры и подставлял в новую роль с правом на чтение, но результат нулевой.

Пример шаблона (второй параметр "Добавление" менял на "Чтение"):
#ПоЗначениям( "Справочник.Номенклатура","Добавление","НеОграничиватьДоступКГруппам",

"ГруппыНоменклатуры","Ссылка", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )

Может кто-нибудь подсказать как можно решить задачу?
Ответ: Именно на чтение. По аналогии с доступом к справочнику "Организации", "Склады" или документу "ЗаказКлиента".
Вопрос: v7: Распределение скидки по чеку V2

В продолжение темы
Ребят, такая проблема, в теме
Решил сделать по-другому, вручную пересчитывал сумму в документе и сравнивал с суммой , которая получилась за минусом скидки. Код:
//*******************************************

Процедура Сформировать()
    Перем   minPoints,maxPoints,СПАСИБО1;
    minpoints=0;
    maxpoints=1000;
    Док = СоздатьОбъект("Документ.ЧекККМ");
    Док=ВыбДок;
    Предупреждение("Минимальная сумма скидки:"+minPoints/100+РазделительСтрок+"Максимальная сумма скидки:"+maxPoints/100,0);
    ОбщСкидка1=ВвестиЧисло(СПАСИБО1,"Введите количество списываемых бонусов",6,2,0);
    Если СПАСИБО1*100 > maxPoints тогда
        Предупреждение("Сумма списания больше допустимой!",0);
        Возврат;
    ИначеЕсли СПАСИБО1*100<minpoints тогда
        Предупреждение("Сумма списания меньше допустимой!",0);
        Возврат;
    иначе
        //проверка на списание

        //ТЗ1=СоздатьОбъект("ТаблицаЗначений");

        //Спасибо1=Спасибо;

        ТЗ1.Очистить();
        Док.ВыгрузитьТабличнуюЧасть(ТЗ1); 
        ТЗ1.УдалитьКолонку("Единица"); 
        ТЗ1.УдалитьКолонку("Коэффициент");
        ТЗ1.УдалитьКолонку("Акция");
        ТЗ1.УдалитьКолонку("СкидкаПоСтроке");
        ТЗ1.УдалитьКолонку("СкидкаСпасибо");
        ТЗ1.УдалитьКолонку("Штрихкод");
        ТЗ1.УдалитьКолонку("НомерСтроки");
        ТЗ1.НоваяКолонка("МаксСкидка","Число",8,2,"МаксСкидка");
        ТЗ1.НоваяКолонка("СкидкаОст","Число",8,2,"СкидкаОст");
        ТЗ1.НоваяКолонка("МаксСкидкаОст","Число",8,2,"МаксСкидкаОст");
        ТЗ1.НоваяКолонка("Скидка","Число",8,2,"Скидка");
        ТЗ1.ВыбратьСтроки();
        Пока ТЗ1.ПолучитьСтроку()=1 цикл
            ТЗ1.МаксСкидка=ТЗ1.Сумма;
        КонецЦикла;
    
        СпрНовНоменклатураБезСкидок = СоздатьОбъект("Справочник.НовНоменклатураБезСкидок");
        ТЗ1.ВыбратьСтроки();
        Пока ТЗ1.ПолучитьСтроку()=1 цикл
            Если СпрНовНоменклатураБезСкидок.НайтиПоРеквизиту("Номенклатура",ТЗ1.Номенклатура,1)=1 Тогда
                ТЗ1.УдалитьСтроку();
                ТЗ1.ВыбратьСтроки();
            КонецЕсли;
        КонецЦикла;
        ТЗ1.ВЫбратьСтроки();
        //

        //ОбщСкидка1=СПАСИБО1;

        Остаток1=ТЗ1.Итог("МаксСкидка");
        СуммаСтрок1=0; 
        Разница=0;
        ТЗ1.ВыбратьСтроки();
        Пока ТЗ1.ПолучитьСтроку()=1 цикл
            МаксСкидкаОст1=Остаток1-СуммаСтрок1;
            СуммаСтрок1=СуммаСтрок1+ТЗ1.МаксСкидка;
            ТЗ1.МаксСкидкаОст=МаксСкидкаОст1;
            ТЗ1.Скидка=((Спасибо1*ТЗ1.МаксСкидка)/ТЗ1.МаксСкидкаОст);
            Цена1=окр((ТЗ1.Сумма-ТЗ1.Скидка)/ТЗ1.Количество,2);
            Если Цена1*ТЗ1.Количество<>ТЗ1.Сумма-ТЗ1.Скидка тогда
                Разница=Разница+ТЗ1.Скидка-((Цена1*ТЗ1.Количество)-(ТЗ1.Сумма-ТЗ1.Скидка));
                СпасибоНужно=СпасибоНужно+Разница;
                Предупреждение("Для корректной скидки на чек нужно списать "+(окр(Разница+Спасибо1-ТЗ1.Скидка,2))+" СПАСИБО!");
                Возврат;
            иначе
                СпасибоНужно=СпасибоНужно+ТЗ1.Скидка;
            КонецЕсли;
            Разница=Разница+ТЗ1.Скидка-((Цена1*ТЗ1.Количество)-(ТЗ1.Сумма-ТЗ1.Скидка));
            ТЗ1.СкидкаОст=Спасибо1;
            Спасибо1=Спасибо1-ТЗ1.Скидка;
        КонецЦикла;
        Предупреждение("Для корректной скидки на чек нужно списать "+Разница+" СПАСИБО!");
    КонецЕсли;
    
        //проверка на списание

КонецПроцедуры


Появилась проблема, при каждом случае, когда суммы не равны, 1С будет выдавать сообщение, что нужно списать другую сумму бонусов. Мне бы сделать так, чтобы программа выводила только конечное количество бонусов, которое нужно списать. Подправил код:
//*******************************************

Процедура Сформировать()
    Перем   minPoints,maxPoints,СПАСИБО1;
    minpoints=0;
    maxpoints=1000;
    Док = СоздатьОбъект("Документ.ЧекККМ");
    Док=ВыбДок;
    Предупреждение("Минимальная сумма скидки:"+minPoints/100+РазделительСтрок+"Максимальная сумма скидки:"+maxPoints/100,0);
    ОбщСкидка1=ВвестиЧисло(СПАСИБО1,"Введите количество списываемых бонусов",6,2,0);
    Если СПАСИБО1*100 > maxPoints тогда
        Предупреждение("Сумма списания больше допустимой!",0);
        Возврат;
    ИначеЕсли СПАСИБО1*100<minpoints тогда
        Предупреждение("Сумма списания меньше допустимой!",0);
        Возврат;
    иначе
        //проверка на списание

        //ТЗ1=СоздатьОбъект("ТаблицаЗначений");

        //Спасибо1=Спасибо;

        ТЗ1.Очистить();
        Док.ВыгрузитьТабличнуюЧасть(ТЗ1); 
        ТЗ1.УдалитьКолонку("Единица"); 
        ТЗ1.УдалитьКолонку("Коэффициент");
        ТЗ1.УдалитьКолонку("Акция");
        ТЗ1.УдалитьКолонку("СкидкаПоСтроке");
        ТЗ1.УдалитьКолонку("СкидкаСпасибо");
        ТЗ1.УдалитьКолонку("Штрихкод");
        ТЗ1.УдалитьКолонку("НомерСтроки");
        ТЗ1.НоваяКолонка("МаксСкидка","Число",8,2,"МаксСкидка");
        ТЗ1.НоваяКолонка("СкидкаОст","Число",8,2,"СкидкаОст");
        ТЗ1.НоваяКолонка("МаксСкидкаОст","Число",8,2,"МаксСкидкаОст");
        ТЗ1.НоваяКолонка("Скидка","Число",8,2,"Скидка");
        ТЗ1.ВыбратьСтроки();
        Пока ТЗ1.ПолучитьСтроку()=1 цикл
            ТЗ1.МаксСкидка=ТЗ1.Сумма;
        КонецЦикла;
    
        СпрНовНоменклатураБезСкидок = СоздатьОбъект("Справочник.НовНоменклатураБезСкидок");
        ТЗ1.ВыбратьСтроки();
        Пока ТЗ1.ПолучитьСтроку()=1 цикл
            Если СпрНовНоменклатураБезСкидок.НайтиПоРеквизиту("Номенклатура",ТЗ1.Номенклатура,1)=1 Тогда
                ТЗ1.УдалитьСтроку();
                ТЗ1.ВыбратьСтроки();
            КонецЕсли;
        КонецЦикла;
        ТЗ1.ВЫбратьСтроки();
        //

        //ОбщСкидка1=СПАСИБО1;

        Остаток1=ТЗ1.Итог("МаксСкидка");
        СуммаСтрок1=0; 
        Разница=0;
        ТЗ1.ВыбратьСтроки();
        Пока ТЗ1.ПолучитьСтроку()=1 цикл    
            МаксСкидкаОст1=Остаток1-СуммаСтрок1;
            СуммаСтрок1=СуммаСтрок1+ТЗ1.МаксСкидка;
            ТЗ1.МаксСкидкаОст=МаксСкидкаОст1;
            ТЗ1.Скидка=((Спасибо1*ТЗ1.МаксСкидка)/ТЗ1.МаксСкидкаОст);
            Цена1=окр((ТЗ1.Сумма-ТЗ1.Скидка)/ТЗ1.Количество,2);
            Пока Цена1*ТЗ1.Количество<>ТЗ1.Сумма-ТЗ1.Скидка цикл
                Если Цена1*ТЗ1.Количество=ТЗ1.Сумма-ТЗ1.Скидка тогда
                    Разница=Разница+ТЗ1.Скидка-((Цена1*ТЗ1.Количество)-(ТЗ1.Сумма-ТЗ1.Скидка));
                    СпасибоНужно=СпасибоНужно+Разница;
                    Предупреждение("Для корректной скидки на чек нужно списать "+(окр(Разница+Спасибо1-ТЗ1.Скидка,2))+" СПАСИБО!");
                    Возврат;
                иначе
                    СпасибоНужно=СпасибоНужно+ТЗ1.Скидка;
                КонецЕсли;
                Разница=Разница+ТЗ1.Скидка-((Цена1*ТЗ1.Количество)-(ТЗ1.Сумма-ТЗ1.Скидка));
                ТЗ1.СкидкаОст=Спасибо1;
                Спасибо1=Спасибо1-ТЗ1.Скидка;
            КОнецЦикла;
        КонецЦикла;
        Предупреждение("Для корректной скидки на чек нужно списать "+Разница+" СПАСИБО!");
    КонецЕсли;
    
        //проверка на списание

КонецПроцедуры

ушел в бесконечный цикл... Подскажите, что я не так делаю?
Ответ:
из серии 
    Для А=-ТЗТЧ.Количествострок() по -1 Цикл 
            
            
            
            ТЗТЧ.Получитьстрокупономеру(А*(-1));
            
            
            Если СписокНомен.Принадлежит(ТЗТЧ.Номенклатура)>0 тогда
                
                
                
            Иначе
                
                ТЗТЧ.Удалитьстроку();
                
                
            КонецЕсли;    
            
            
            
            
        КонецЦикла;
Вопрос: проблема с RLS

Столкнулся с проблемным шаблоном к таблице "БанковскиеСчета"
Код:
#ПоЗначениямИНаборамРасширенный("Справочник.БанковскиеСчета", "", "",

"",

"",

"Условие", "Т.Владелец ССЫЛКА Справочник.Контрагенты", "И",

"Объект", "ВЫРАЗИТЬ(Т.Владелец КАК Справочник.Контрагенты).Владелец", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "")

//Описание
// ПоЗначениямИНаборамРасширенный(Таблица, -, Модификатор, ПрисоединяемыеТаблицы, О, В1,П1,О1, В2,П2,О2,..., В(n), П(n), О(n)).
// № параметра:                         1, 2,           3,                     4, 5,  6, 7, 8,  9,10,11,...,3+n*3,4+n*3,5+n*3.
// Читается так: "ограничение доступа по значениям и наборам расширенный".
// Параметры:
//     Таблица   - Имя текущей таблицы, например "Документ.ПоступлениеТоваровИУслуг".
//     Модификатор - изменяет шаблон.
//                 1-й модификатор - строка "НеОграничиватьДоступКГруппам" указывает
//                  безусловно выбирать группы иерархического справочника.
//                 2-й модификатор - строка "РасширенноеИЛИ" указывает для ограничений,
//                  например, "ПоОрганизациям или ПоУчетнымЗаписям" делать расширенную
//                  проверку, при которой вариант настройки вида доступа в группах доступа
//                  "Все разрешены, без запрещенных" считается, как "Вид доступа не используется".
//                  Если этого модификатора нет, тогда результат проверки Истина, что приводит
//                  к итоговому результату Истина, если "Все разрешены, без запрещенных"
//                  хотя бы по одному из видов доступа (либо ПоОрганизациям, либо ПоУчетнымЗаписям).
//                  Модификатор имеет смысл только при проверке наборов значений доступа.
//                  Можно использовать комбинации модификаторов: "НеОграничиватьДоступКГруппам",
//                  "РасширенноеИЛИ", "НеОграничиватьДоступКГруппам,РасширенноеИЛИ".
//                 Других модификаторов в этой версии шаблона не предусмотрено.
//     ПрисоединяемыеТаблицы - текст присоедиения дополнительных таблиц на языке запросов, например,
//                 "ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет.ОплатаПоставщикам КАК Т1
//                  ПО Т.Ссылка = Т1.Ссылка".
//                 Присоединение позволяет указать поля таблицы ОплатаПоставщикам, как поля основной таблицы
//                  для проверки их значений, как значений основной таблицы.
//                 Следует помнить, что при размножении строк в результате соединения, достаточно чтобы
//                  всего одна строка прошла условия проверки, т.е. результаты проверки строк объединяются по "ИЛИ".
//     О         - Начальные скобки "(".
//     В(n)      - Вид доступа - имя вида доступа, например, "Организации". Для полей составного типа, с целью повышения
//                  производительности, лучше указать несколько имен, например, "Организации,ГруппыФизическихЛиц",
//                  чем использовать несколько блоков параметров, с одним и тем же именем поля.
//                  Специальные виды доступа "Объект", "Условие", "НастройкиПрав", "ПравоЧтения", "ПравоИзменения"
//                  можно использовать только отдельно.
//                 Когда В(n) = "Условие" (или ""), Тогда П(n) содержит строку условия на языке запросов, например
//                   "Т.Автор = &АвторизованныйПользователь",
//                   "ТИПЗНАЧЕНИЯ(Т.Владелец) = ТИП(Справочник.Организации)", где Т - псевдоним текущей таблицы.
//                 Когда В(n) = "ПравоЧтения" ИЛИ "ПравоИзменения",
//                   выполняется проверка наличия права на таблицу значения Т.П(n).
//                 Когда В(n) = "Объект" (или " "), то
//                   когда есть запись зависимости прав в регистре сведений ЗависимостиПравДоступа тогда
//                     выполняется проверка права чтения Т.П(n) и наборов значений доступа
//                     в регистре сведений НаборыЗначенийДоступа, считываемых по ссылке Т.П(n) для права чтения;
//                   иначе используется стандартное правило:
//                     когда Право = "Чтение" тогда выполняется проверка права чтения Т.П(n) и наборов значений доступа
//                       в регистре сведений НаборыЗначенийДоступа, считываемых по ссылке Т.П(n) для права чтения;
//                     когда Право = "Изменение" тогда выполняется проверка права изменения Т.П(n)
//                       и наборов значений доступа, считываемых по ссылке Т.П(n) для права изменения.
//     П(n)     - Поле проверяемого значения с псевдонимом, например "Т.Организация",
//                кроме случая В(n) = "Условие" (или "").
//     О(n)      - Логические операции "И", "ИЛИ" в сочетании с скобками "(", ")".
//  Примечение: максимальное количество одновременно проверяемых значений полей можно увеличить, изменив шаблон, но
// необходимо будет указывать все параметры шаблона, т.е. указывать пустые строки, когда количество полей меньше максимального.
//  Шаблон имеет структуру:
//     <Соединение по таблице1>  <Соединение по таблице2>  ... <Соединение по таблице(m)>
//     <Общая часть условий> <Условие по группе параметров 1> И/ИЛИ <Условие по группе параметров 1> И/ИЛИ ... <Условие по группе параметров(n)>
//  Пример:
//      ПоЗначениямИНаборамРасширенный("ЖурналДокументов.СкладскиеДокументы", "", "",
//      "",
//      "",
//      "Объект","Т.Ссылка","И",
//      "Объект","Т.ОсновнойДокумент","", "","","", ...)

Вроде типовой шаблон из БСП, работает в других базах без проблем.
Но вот в одной из них при получении банковского счета организации через объектную модель (Организация.ОсновнойБанковскийСчет) появляется ошибка доступа.

Объясните, плиз, как работает спец вид доступа - "условие" (6й параметр).
Если владелец элемента ссылка на контрагент, то проверяется доступ к нему? Но у меня ведь владелец счета - организация! Почему нет доступа к этой записи? 2 часа уже сижу. Прошу помощи команды знатоков =)
Ответ:
Кажется, никакой ошибки в шаблоне нет, т.к. он для роли "ДобавлениеИзменениеКонтрагентов", соответственно и проверка такая)
Вопрос закрыт)