Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Как оптимизировать код в процедуре,нужно по выбранным сериям из списка создать доки

Добрый день! Как оптимизировать код в процедуре,нужно по выбранным сериям из списка создать доки
вот код
Процедура ДействияФормыРедактировать6(Кнопка)

СпДетал = Новый СписокЗначений;

Для каждого Стр из ЭтотОбъект.Состав Цикл
    ДокСертифНом=Документы.СертификацияНоменклатуры.НайтиПоРеквизиту("СерияНоменклатуры",Стр.СерияНоменклатуры);
    Если ДокСертифНом.Пустая() тогда
        СпДетал.Добавить(Стр.СерияНоменклатуры,,Истина);
    иначе    
        Сообщить("Уже есть документ Сертификация номенклатуры,с такой серией:"+""+Стр.СерияНоменклатуры);
    КонецЕсли;    
КонецЦикла;

Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |    ТЗ.Ссылка.Дата,
    |    ТЗ.СерияНоменклатуры,
    |    ТЗ.Ссылка
    |ПОМЕСТИТЬ ТЗ
    |ИЗ
    |    Справочник.аэсПлавки.Состав КАК ТЗ
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    аэсПлавкиСостав.Ссылка.Дата,
    |    аэсПлавкиСостав.Ссылка,
    |    аэсПлавкиСостав.СерияНоменклатуры,
    |    аэсПлавкиСостав.Номенклатура
    |ИЗ
    |    Справочник.аэсПлавки.Состав КАК аэсПлавкиСостав
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТЗ КАК ТЗ
    |        ПО аэсПлавкиСостав.СерияНоменклатуры = ТЗ.СерияНоменклатуры
    |ГДЕ
    |    аэсПлавкиСостав.Ссылка <> &Ссылка
    |и    аэсПлавкиСостав.СерияНоменклатуры в (&СпДетал) " ;

Запрос.УстановитьПараметр("Ссылка",Ссылка);
Запрос.УстановитьПараметр("СпДетал",СпДетал);

ТабЗнач = Запрос.Выполнить().Выгрузить();

ВыборПроизведен = СпДетал.ОтметитьЭлементы("Выберите детали");
Если ВыборПроизведен Тогда
   Для Каждого эл Из СпДетал Цикл
          Для каждого Стр из ТабЗнач Цикл
           Если Эл.Пометка И ЭЛ.Значение =Стр.СерияНоменклатуры  ТОГДА
                        Док = Документы.СертификацияНоменклатуры.СоздатьДокумент();
                     Док.Номенклатура=Стр.Номенклатура;
                     Док.Дата=Стр.Дата;
                        Док.СерияНоменклатуры=Стр.СерияНоменклатуры;
                     Док.Записать();
            конецЕсли;
        КонецЦикла;
    КонецЦикла;    
КонецЕсли;
КонецПроцедуры
Ответ: Каждой строке это новая серия соответствует отдельный документ.
Вопрос: Работа с полем со списком

Здравствуйте! Мне нужно выбрать значение поля со списком, которое берется со справочника. И по нему уже фильтровать справочник. Вот только задать значения не выходит...
Код 1C
1
2
3
4
5
6
7
8
  Процедура ПриОткрытии()  
    Факультеты = СоздатьОбъект("Справочник.Факультет");
Факультеты.ВыбратьЭлементы();  
Пока Факультеты.ПолучитьЭлемент() = 1 Цикл      
    Сообщить(Ttt.ТекущийЭлемент().Наименование);
    
конеццикла;
КонецПроцедуры
Выводит ошибку:
Попытка присвоить значение недоступной для записи переменной (Факультеты)
Подскажите как быть тогда?
Ответ: Реализовала иначе с помощью поля ввода. и ему уже дала значения справочника) всем спасибо большое)
Выборку сделала, если кому понадобится:
Код 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
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Печать)
 
    |Факультет1 = Справочник.Проживающие.Факультет;
    |Проживающий = Справочник.Проживающие.Наименование;
    |Группа = Справочник.Проживающие.НомГруппы;
    |НомерКомнаты = Справочник.Проживающие.НомерКомнаты;
    |Функция Сч = Счётчик();
    |Группировка Факультет1;
    |Группировка Проживающий;";
        Если Факультет.Выбран()=1 Тогда   ТекстЗапроса=ТекстЗапроса+"  
        
    |Условие(Факультет = Факультет1);
    |"//}}ЗАПРОС 
    ;         //    сообщить("заппаптап");
        КонецЕсли;
     
    
    Сообщить(Факультет);    
        
        
        
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда  
        сообщить("запрос вообще не прошел");
        Возврат;
    КонецЕсли;    
        ТабЗнач=СоздатьОбъект("ТаблицаЗначений");   //* Показать результат запроса
    Запрос.Выгрузить(ТабЗнач,0,0);              //* ставилось на время отладки
    Парам=ТабЗнач; ОткрытьФорму("Отчет.Диагностика",ТабЗнач);// Возврат;
 
    Спр=СоздатьОбъект("Справочник.Факультет");
    Спр1=СоздатьОбъект("Справочник.Проживающие");
    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); 
    Себ=0; Приб=0;
    Пока Запрос.Группировка("Факультет1") = 1 Цикл
        Спр.НайтиПоНаименованию(Запрос.ЗначениеУпорядочивания(1),0);
              Таб.ВывестиСекцию("Факультет");   
    
             Себ1=0; Приб1=0;
        Пока Запрос.Группировка(2) = 1 Цикл  
        
        Спр1.НайтиПоНаименованию(Запрос.ЗначениеУпорядочивания(1),0);
        // Если Запрос.Проживающий.ЭтоГруппа()=0 тогда     Таб.ВывестиСекцию("Проживающий");
         //иначе Таб.ВывестиСекцию("группа");    
         // конецесли;
//Если Запрос.Медикамент.ЭтоГруппа()=0 тогда     
    Таб.ВывестиСекцию("Проживающий");
 
//КонецЕсли;
КонецЦикла; 
 
    КонецЦикла;
 
    Таб.ВывестиСекцию("Итого");
 
    Таб.ТолькоПросмотр(0); 
        Таб.ПараметрыСтраницы(1,100,,3,3,3,3,1,1,,,);
    Таб.Показать("Печать", "");
КонецПроцедуры
Вопрос: Проверка уникальности значения в списке

Всем здравствуйте. Есть СписокЗначений - "СписокИменНастроек" и реквизит "НовоеИмяНастройки". Нужно при изменении реквизита НовоеИмяНастройки проверять, есть ли его значение в списке СписокИменНастроек. И всё бы работало, если бы не нужно было сохранять список при закрытии формы, а восстанавливать - при открытии. Для этого я пользуюсь методами ЗначениеВСтрокуВнутр() и ЗначениеИзСтрокиВнутр() соответственно. А потом видать, при заполнении списка, эти методы как-то незаметно для пользователя карёжат значения сохраняемого списка. Однако уже со второй попытки изменения реквизита НовоеИмяНастройки код отрабатывает как надо. Вот мой код, что не так, прошу помочь, пожалуйста:

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

Процедура НовоеИмяНастройкиПриИзменении(Элемент)
    ИщемЗначение=СписокИменНастроек.НайтиПоЗначению(НовоеИмяНастройки);
    ПроверкаУникальности=истина;
    Если ИщемЗначение<>неопределено Тогда
        ПроверкаУникальности=ложь;
        Сообщить("повтор");
    КонецЕсли;
    Если ИщемЗначение=неопределено Тогда
        СписокИменНастроек.Добавить(НовоеИмяНастройки);
    КонецЕсли;
КонецПроцедуры

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

Код:
Процедура ПриОткрытии()
    СписокИменНастроек=ВосстановитьЗначение("СписокИменНастроек");
    Если СписокИменНастроек=неопределено Тогда
        СписокИменНастроек=Новый СписокЗначений;
    КонецЕсли;
КонецПроцедуры

Процедура НовоеИмяНастройкиПриИзменении(Элемент)
    ИщемЗначение=СписокИменНастроек.НайтиПоЗначению(НовоеИмяНастройки);
    ПроверкаУникальности=истина;
    Если ИщемЗначение<>неопределено Тогда
        ПроверкаУникальности=ложь;
        Сообщить("повтор");
    КонецЕсли;
    Если ИщемЗначение=неопределено Тогда
        СписокИменНастроек.Добавить(НовоеИмяНастройки);
    КонецЕсли;
КонецПроцедуры

Процедура ПриЗакрытии()
    СохранитьЗначение("СписокИменНастроек",СписокИменНастроек);
КонецПроцедуры
Вопрос: как получить ссылку на созданный элемент справочника в управляемых формах 8.2

Добрый день. Вопрос возник следующий. Из процедуры документа я вызываю форму элемента справочника, заполняю ее и записываю и нужно чтоб после записи в процедуру, которое все это вызывало получила ссылку на созданный элемент.

Код процедуры следующий:
Код 1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
&НаКлиенте
Процедура КонтрагентОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка)
    
    ВведенныйКонтрагент = ПолучитьВведенногоКонтрагента(Текст);
    Если ВведенныйКонтрагент <> Неопределено Тогда
        Контрагент = ВведенныйКонтрагент;
    Иначе
        Режим = РежимДиалогаВопрос.ДаНет;
        ТекстСообщения = "Клиент не найден! Завести данные нового клиента в справочник?";
        Ответ = Вопрос(ТекстСообщения, Режим, 0);
        Если Ответ = КодВозвратаДиалога.Да Тогда
            ДанныеЗаполнения                            = ПолучитьФорму("Справочник.мфоКонтрагенты.ФормаОбъекта");
            ДанныеЗаполнения.Объект.Наименование        = Текст;
            ДанныеЗаполнения.Объект.НаименованиеПолное  = Текст;
            
            ДанныеЗаполнения.Открыть();
        КонецЕсли;
    КонецЕсли;
 
КонецПроцедуры // КонтрагентОкончаниеВводаТекста()
понятно, что форма объекта справочника открывается в этом участке кода
Код 1C
1
2
3
4
5
6
7
Если Ответ = КодВозвратаДиалога.Да Тогда
            ДанныеЗаполнения                            = ПолучитьФорму("Справочник.мфоКонтрагенты.ФормаОбъекта");
            ДанныеЗаполнения.Объект.Наименование        = Текст;
            ДанныеЗаполнения.Объект.НаименованиеПолное  = Текст;
            
            ДанныеЗаполнения.Открыть();
        КонецЕсли;
вот как в эту процедуру вернуть или получить ссылку созданного элемента?
при условии, что элемент справочника будет заполняться в ручную, а не программно.
Ответ:
Цитата Сообщение от BVladimir2 Посмотреть сообщение
Да помнится, что в некоторых случаях "ТекстРедактирования" не соответствовал тому, что введено в поле на экране. Правда у меня там были програмные "перескоки" с поля на поле, а связано ли это и что конкретно, на что влияло я не докопал..
ну пока вроде все нормально было, в тексте содержалось значение, которое ввел. А подход как сделал я и хорош, но плох тем что лишний раз записывается реквизит Контрагент.

а если без связи делать, то нужно в ручную пилить все обработчики этого поля. Этот подход вроде правильней, но обширней. Мой проще, но наверно не правильный в какой-то мере вообщем не знаю
Вопрос: Отловить активизацию окна у пользователя. Чтоб созданные док-ты при активизации окна отобр

Пользователь, допустим делает РКО, потом переключается в окно, где  эти РКО и др. документы отображаются. Как отловить момент ,когда пользователь переключился с окна создания РКО, в форму где эти РКО  с другими документами отображаются. Может процедура какая-то, которая отлавливает активизацию формы (активной). Надеюсь доступно объяснил...
Зачем это все? Пользователь создавал документов, а в другой форме, они не отображаются, чтоб обновить отображение документов...
Ответ: () Сейчас гляну...
Вопрос: Не сохраняет значение выбранное из списка выбора в поле

Форумчане) помогите ..

Есть формаЭлемента документа. На ней есть таблицаЗначений с полямиВвода Сотрудник, Содержание.

Сотрудник это СписокЗначений.
Программно я выдаю туда массив необходимых мне сотрудников.

Процедура ИсторияПереговоровСотрудникНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

     СтандартнаяОбработка = Ложь; 

    Компан = Объект.Компания;
    Если ПустаяСтрока(Компан) тогда
      Сообщить ("Пусто ");
        Иначе
     СЗ =  ПолучитьСотрудников(Компан);
     ВыводВС = Элемент.СписокВыбора;
     ВыводВС.ЗагрузитьЗначения(СЗ);
КонецПроцедуры

Вот список нужных сотрудников выпадает нормально, но когда я нажимаю на какого то из списка, само поле остается пустым..

СЗ - массив
Ответ: проблема решена
Вопрос: v7: Обработка выбранного значения

День добрый, форумчане. Давно не работал с 7.7 и что-то подзабыл, помогите кто чем может.
А проблема следующая, есть форма элемента справочника в нем поле подчиненного справочника. Если ничего не трогать то стандартная обработка при нажатии на ... просит заново выбрать элемент номенклатуры что-бы выбрать подчиненные ему(не передает в открываемую форму сама владельца). Решил исправить:

Процедура ПриНачалеВыбораЗначения(ВыдавшийОрган,ФлагСтандОбр)   
    ФлагСтандОбр = 0;
    ОткрытьФорму("Справочник.ОрганыСертификации1",,,,ТекущийЭлемент().Владелец);
КонецПроцедуры

Отлавливаю событие выбора моего реквизита, и открываю уже форму с нужным владельцем, но никак не могу отловить элемент который пользователь выбирает в этой форме, в процедуре ОбработкаВыбораЗначения отладчик просто не останавливается.

Подскажите как либо в стандартную обработку передать владельца, либо поймать выбранный элемент в моём случае
Ответ: () А если делать через ПриНачалеВыбораЗначения, то потом ничего отлавливать не нужно. Выбранный элемент сам подставится.

Процедура ПриНачалеВыбораЗначения(ВыдавшийОрган,ФлагСтандОбр)   
    ФлагСтандОбр = 0;
    ОткрытьФорму("Справочник.ОрганыСертификации1",НужныйВладелец.ТекущийЭлемент());
КонецПроцедуры

у справочника "ОрганыСертификации1" Создай форму для выбора. В ней при открытии ИспользоватьВладельца(Форма.Параметр)
Вопрос: Открытие формы выбранного документа на редактирование

Здравствуйте. В собственной конфигурации есть документ "НазначенияСотрудникам", отражающие работы сотрудников. Понадобилось следующее: получить по подразделению пользователя(руководителя подразделения) все текущие работы сотрудников этого подразделения списком и реализовать возможность редактировать выбранный из списка документ. Документы я вывел в форме обработки в динамический список. Далее попытался на событии списка "Выбор" реализовать открытие формы выбранного документа:
1C
1
2
3
4
5
6
&НаКлиенте
Процедура ТекущиеРаботыСотрудниковВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    // Вставить содержимое обработчика.
ТекСтрока=Элементы.ТекущиеРаботыСотрудников.ТекущиеДанные;  
ОткрытьЗначение(ТекСтрока.Ссылка);  
КонецПроцедуры
Ссылка - реквизит строки списка, ссылка на документ. Проблема в том, что мне открывается форма только для чтения, редактировать документ невозможно. Что не так? помогите пожалуйста.
Ответ: все, понял, я в первый раз сделал так же как в обработке планирования, но косанул немного...и потом сделал открыть значение, что и прнивел здесь. Извиняюсь за неточность, спасибо большое за помощь
Вопрос: Связанные списки выбора

Добрый день!
Есть справочник в нем три реквизита:
1)Документ (Тип строка, режим выбора из списка)
2)Реквизит (Тип строка, режим выбора из списка)
3)ТипРеквизита (Тип строка)
Задача - в первом реквизите выбираем документы, во втором реквизит (которые присутствуют в выбранном документе), а третий заполняется типом реквизита.
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
&НаКлиенте
Процедура ДокументНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    ДокументНачалоВыбораНаСервере();
    СЗ = ДокументНачалоВыбораНаСервере();  
    
    Элементы.Документ.СписокВыбора.ЗагрузитьЗначения(СЗ)
 
    
КонецПроцедуры
 
&НаСервереБезКонтекста
Функция ДокументНачалоВыбораНаСервере()
    ТЗ = Новый ТаблицаЗначений;
    КТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Справочники"); 
    ТЗ.Колонки.Добавить("Реквизиты");
    ТЗ.Колонки.Добавить("ТипРеквизита");       
 
    Доки = Метаданные.Документы;
 
    Для каждого Док из Доки Цикл
        
        Если Док.Имя = "ПоступлениеТоваров" или Док.Имя = "ПродажаТоваров" Тогда 
            
            Для каждого Рек  Из Док.Реквизиты Цикл
                НоваяСтрока = ТЗ.Добавить();
                НоваяСтрока.Справочники = (Строка(Док));
 
                НоваяСтрока.Реквизиты = (Строка(Рек));
                НоваяСтрока.ТипРеквизита = Рек.Тип;
            КонецЦикла;
            
        КонецЕсли;
    КонецЦикла;
    КТЗ = ТЗ.СкопироватьКолонки();
 
    ТЗ.Свернуть("Справочники");
    
        СЗ = Новый СписокЗначений;
        СЗ = ТЗ.ВыгрузитьКолонку("Справочники");
        Возврат СЗ;
    КонецФункции
Загвоздка в том, как связать два списка выбора?
Ответ: Решил отписаться, может кому пригодиться
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
&НаКлиенте
Процедура ДокументНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СписокЗначений = ВыборДокумента();  
    Элементы.Наименование.СписокВыбора.ЗагрузитьЗначения(СписокЗначений)    
КонецПроцедуры
 
&НаСервереБезКонтекста
Функция ВыборДокумента(ВозвращатьИменаДокументов = Истина, ВыбранноеЗначение = "")
    
    ТаблицаЗначений = Новый ТаблицаЗначений;
    ТаблицаЗначений.Колонки.Добавить("Документы"); 
    ТаблицаЗначений.Колонки.Добавить("Реквизиты");
    ТаблицаЗначений.Колонки.Добавить("ТипРеквизита");
    Доки = Метаданные.Документы;
 
    Для каждого Док из Доки Цикл        
        Если Док.Имя = "ПеремещениеТоваров" или Док.Имя = "ПоступлениеТоваровУслуг" Тогда               
            Для каждого Рек  Из Док.Реквизиты Цикл
                НоваяСтрока = ТаблицаЗначений.Добавить();
                НоваяСтрока.Документы = (Строка(Док));
                НоваяСтрока.Реквизиты = (Строка(Рек));
                
                СинонимТип = Метаданные.НайтиПоТипу(ТипЗнч(Рек.Тип.ПривестиЗначение()));
                Если Строка(Рек.Тип) = "Строка" или Строка(Рек.Тип) = "Число" или Строка(Рек.Тип) = "Дата" или Строка(Рек.Тип) = "Булево" Тогда
                    НоваяСтрока.ТипРеквизита = Рек.Тип;
                ИначеЕсли Метаданные.Справочники.Найти(СинонимТип.Имя) <> Неопределено Тогда
                    НоваяСтрока.ТипРеквизита = "СправочникСсылка." + СинонимТип.Имя;
                ИначеЕсли Метаданные.Документы.Найти(СинонимТип.Имя) <> Неопределено Тогда
                    НоваяСтрока.ТипРеквизита = "ДокументСсылка." + СинонимТип.Имя;
                ИначеЕсли Метаданные.Перечисления.Найти(СинонимТип.Имя) <> Неопределено Тогда
                    НоваяСтрока.ТипРеквизита = "ПеречислениеСсылка." + СинонимТип.Имя;
                Иначе
                    НоваяСтрока.ТипРеквизита = Рек.Тип;
                КонецЕсли               
            КонецЦикла;             
        КонецЕсли;
    КонецЦикла;
        Адресс = ПоместитьВоВременноеХранилище(ТаблицаЗначений, Новый УникальныйИдентификатор);
        СписокЗначений = Новый СписокЗначений;
    Если ВозвращатьИменаДокументов = Истина Тогда
        ТаблицаЗначений.Свернуть("Документы");
        СписокЗначений = ТаблицаЗначений.ВыгрузитьКолонку("Документы");
        Возврат СписокЗначений;
    Иначе
        Возврат Адресс;
    КонецЕсли;
КонецФункции
 
&НаСервереБезКонтекста
Функция ВыборТипаИРеквизита(ВозвращатьИменаДокументов = Истина, ВыбранноеЗначение = "")
        Адресс = ВыборДокумента(Ложь);
        НоваяСтруктура = Новый Структура;
        СписокЗначенийРеквизита = Новый СписокЗначений;         
        КопияТаблицыЗначений = Новый ТаблицаЗначений;
        КопияТаблицыЗначений = ПолучитьИзВременногоХранилища(Адресс);
        
    Если ВозвращатьИменаДокументов = Истина Тогда
        Массив = Новый Массив;
        Массив2 = Новый Массив;
        НоваяСтруктура.Вставить("Документы", ВыбранноеЗначение);        
        Массив = КопияТаблицыЗначений.НайтиСтроки(НоваяСтруктура);
            Для каждого Строка Из Массив Цикл
                Массив2.Добавить(Строка.Реквизиты);
            КонецЦикла;
        Возврат Массив2;
    Иначе
        Массив3 = Новый Массив;
        НоваяСтруктура.Вставить("Реквизиты", ВыбранноеЗначение);        
        Массив = КопияТаблицыЗначений.НайтиСтроки(НоваяСтруктура);
            Для каждого Строка Из Массив Цикл
                Массив3.Добавить(Строка.ТипРеквизита);
            КонецЦикла;
        Возврат Массив3[0];
    КонецЕсли;  
КонецФункции
 
&НаКлиенте
    Процедура ДокументОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
        Массив = ВыборТипаИРеквизита(Истина, ВыбранноеЗначение);
        Элементы.Реквизит.СписокВыбора.ЗагрузитьЗначения(Массив)
    КонецПроцедуры
 
&НаКлиенте
    Процедура РеквизитОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
        Значение = ВыборТипаИРеквизита(Ложь, ВыбранноеЗначение);        
        
        МассивТипов = Новый Массив();
        МассивТипов.Добавить(Тип(Значение));
        Элементы.Значение.ОграничениеТипа = Новый ОписаниеТипов(МассивТипов);
 
    КонецПроцедуры
Вопрос: Статус указания серий

Учет ведется в Альфа-авто, далее для бух.учета все переносится в КА1.1. В этих конфигурациях с серийным учетом все нормально, справочник СерииНоменклатуры подчинен Номенклатуре, нет никаких Политика учета серий. Но поддержка УПП/КА1 заканчивается надо переходить на КА2.4, а тут с серийным учетом проблемы: серии в документах не отражаются, хотя передаются из КА1.1. Затирались пока не передавал СтатусУказанияСерий = 14, но сейчас серии не отражаются в документах!?
Может не 14, а другое значение надо передавать, какое?
Единственное что нашел по СтатусУказанияСерий:
//  Возможные статусы указания серий:

//  
//  -1 - серии указаны в таблице уточнения (нет картинки)

//  0 - серии указывать не требуется (нет картинки)
//  первый указанный статус - количество по сериям не совпадает с количеством товаров или серии не указаны (красная картинка)

//  второй указанный статус   - количество по сериям совпадает с количеством товаров (зеленая картинка)
//  третий указанный статус   - серии не указаны, их можно указывать, а можно и не указывать (синяя картинка)

//      1,2,21  - серии указываются справочно
//      3,4,23  - по сериям учитываются остатки, серии указываются по факту отбора

//      5,6,25  - по сериям учитываются остатки, серии указываются при планировании отбора,
//          заполняются по FEFO (используются только в документах отгрузки товаров)

//      7,8,27  - по сериям учитываются остатки, серии указываются при планировании отбора
//      9,10,11 - по сериям учитываются остатки, серии указываются при планировании отгрузки,

//      по сериям формируются движения по регистру СвободныеОстатки (как при приходе, так и при расходе)
//   13,14,15 - по сериям учитывается себестоимость

//   17,18,28 - по сериям учитываются товары у партнеров (товары в пути, неотфактурованные поставки).
//

// Параметры:
//  Объект                         - ДанныеФормыСтруктура или ДокументОбъект - объект, в котором нужно заполнить статусы.

//  ПараметрыУказанияСерий         - Структура - состав полей задается функцией НоменклатураКлиентСервер.ПараметрыУказанияСерий
//      (см. описание полей в комментарии к этой фукнции).

//  СтрокиТоваровДляОбработки     - Массив - строки товаров, в которых нужно заполнить статусы указания серий,
//      если передано "Неопределено", то статусы заполняются во всех строках товаров.

//  СтрокиСерийДляОбработки         - Массив - строки серий, по данным которых нужно заполнить статусы указания серий,
//      если передано "Неопределено", то учитываются все строки серий.


в комментариях процедуры НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(), но не понял что за "первый указанный статус", 2-й, 3-й... разряды что-ли?
Начало проблемы в теме
Ответ: + Создал с типом политики "Учет себестоимости по сериям" как демо-базе, но выбрать в вид номенклатуры не могу, пишет:
Есть склады, для которых не включено использование ордерной схемы при отражении излишков, недостач и порчи. Поэтому единой политикой учета серий может быть только политика со справочным указанием серий, которая не требует указания серий при отражении излишков.
Все склады должны быть ордерные? Без них серийный учет невозможен?