Имя: Пароль:
1C
1С v8
Как в модуле формы справочника получить владельца?
0 Xelga
 
15.05.12
16:58
В форме справочника Партии, открытой для конкретного владельца мне нужно добавлять новые элементы, как считать текущего владельца, чтобы его же проставить в новые элементы справочника. В отладке поискала , нашла что можно считать так этаформа.ТекущийЭлемент.ТекущиеДанные.Владелец
но это будет работать только в том случае, если уже есть заполненные значения. А если открываешь форму справочника, а там еще нет значений для этого владельца, то естественно выдается ошибка.
1 Maxus43
 
15.05.12
16:59
ЭтотОбъект.Владелец
2 Maxus43
 
15.05.12
16:59
если пустой - значит элемент новый
3 Xelga
 
15.05.12
17:01
(1) не работает, забыла сказать это у меня управляемая форма
4 Xelga
 
15.05.12
17:03
(2) допустим из приходной накладной из табличной части товары открываю партии для текущей номенклатуры строки, партий еще нет, но ссылка на номенклатуру то где-то есть, и мне ее нужно получить
5 Maxus43
 
15.05.12
17:03
а в какие новые элементы? создавать же на сервере будеш? а там и Объект.Владелец доступен
6 Xelga
 
15.05.12
17:11
в процедуре на сервере смотрю Объект - пишет переменная не определена
7 Maxus43
 
15.05.12
17:16
ЭтотОбъект всмысле
8 Xelga
 
15.05.12
17:17
(7) и ЭтотОбъект тоже не работает
9 Xelga
 
15.05.12
17:18
(8) не работает не на клиенте не на сервере
10 acsent
 
15.05.12
17:18
список.отбор.владелец.значение
11 Xelga
 
15.05.12
17:22
(10) поле объекта не обнаружено владелец, тоже и на клиенте и на сервере
12 vmv
 
15.05.12
17:26
ТкТд = Этаформа.ТекущийЭлемент.ТекущиеДанные; // или где там владелец

Если ТкТд = Неопеределено Тогда
ТекущийВладелец = ПредопределенноеЗначение("Справочник....");
Иначе
ТекущийВладелец = ТкТд.Владелец;
КонецЕсли;
13 vmv
 
15.05.12
17:27
ПредопределенноеЗначение("Справочник....ПустаяСсылка");
14 Xelga
 
15.05.12
17:29
(13) это будет работать только если уже есть какая-то партия, если список партий пустой, то в текущихданных ничего нет, и владельца тоже
15 Xelga
 
15.05.12
17:32
в этом и вопрос к чему обратиться, чтобы получить владельца. Это управляемая форма конфигурация УНФ. Вообще если в отладке смотрю Список.Отбор, то его значение - Номенклатура Равно "Основной блок Ветерок" И Статус В списке "Собственные запасы; Товары на комиссии", тип данных ОтборКомпоновкиДанных.
Но если дальше Список.Отбор разворачиваю, то там нет ни владельца , ни номенклатуры
16 Xelga
 
15.05.12
17:32
(15) как из этого извлечь номенклатура-владельца непонятно
17 Defender aka LINN
 
15.05.12
17:34
(15) "Номенклатура Равно "Основной блок Ветерок"" - какие еще вопросы?
18 Xelga
 
15.05.12
17:36
(17)как к этому обратиться, тип данных ОтборКомпоновкиДанных - не знаю как с ним работать, просто через точку там ничего нет ни номенклатуры, ни владельца
19 dangerouscoder
 
15.05.12
17:44
(18) а в справке что пишут?
20 Xelga
 
15.05.12
17:47
считала так
   Отбор = Список.Отбор;
   Владелец = Отбор.элементы[0].ПравоеЗначение;
Думала, что может как-то проще можно, но видимо нет...
21 vmv
 
15.05.12
17:48
бородатый тролль детектед
22 dangerouscoder
 
15.05.12
17:51
Передавай в уф значение номенклатура ссылка при открытии..
23 adron
 
15.05.12
17:52
Посмотри в этаформа.Параметры
24 Defender aka LINN
 
15.05.12
17:53
Ну, вообще-то УФ и сама такие вещи делает, причем совершенно штатно. Для зачем аффтар пытается вломиться в рабочий механизм - мне непонятно
25 Xelga
 
15.05.12
18:19
(23) нет там этого
26 Xelga
 
15.05.12
18:23
(24) у меня когда открывается форма списка партий, нужно считать сканером штрихкодов код партии, проверить есть ли такая, если нет то, создать партию с таким кодом и спозиционировать курсор на этой партии.
Какими штатными средствами я могу получить владельца, чтобы указать его при создании нового элемента? Что-то не могу я получить ответ.
27 Xelga
 
15.05.12
18:25
Еще кстати большой вопрос у меня как спозиционировать курсор на нужной строке.
Делаю Элементы.Список.ТекущаяСтрока = Партия. Выдает ошибку - проверка мутабельных значений на заполненность не поддерживается
28 Defender aka LINN
 
15.05.12
18:32
(27) "Элементы.Список.ТекущаяСтрока = Партия" не может вызвать такую ошибку. Прекратите сказки рассказывать.
(26) В отборе все есть.
29 Xelga
 
15.05.12
18:36
(28) говорю как есть на самом деле, конфигурация УНФ в модуле формы выбора справочника ПартииНоменклатуры добавила

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// ПодключаемоеОборудование
   Если Источник = "ПодключаемоеОборудование" Тогда
       Если ИмяСобытия = "ScanData" Тогда
           //Преобразуем предварительно к ожидаемому формату
           Данные = "";
           Если Параметр[1] = Неопределено Тогда
               Данные = Параметр[0]; // Достаем штрихкод из основных данных
           Иначе
               Данные = Параметр[1][1]; // Достаем штрихкод из дополнительных данных
           КонецЕсли;
           //проверим существует ли партия считанная с штихкода
           Партия = Неопределено;
           Отбор = Список.Отбор;
           Владелец = Отбор.элементы[0].ПравоеЗначение;
           НайтиПартию(Данные,Владелец, Партия);
           ОбновитьИнтерфейс();
           Элементы.Список.ТекущаяСтрока = Партия;
       КонецЕсли;
   КонецЕсли;
   // Конец ПодключаемоеОборудование
КонецПроцедуры

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

Того что вы говорите в отборе нет.
30 acsent
 
15.05.12
18:38
(11) так это уф чтоли?
31 Xelga
 
15.05.12
18:40
(30)да, я писала, что это управляемая форма (3)
32 Defender aka LINN
 
15.05.12
18:44
(29) "Владелец = Отбор.элементы[0].ПравоеЗначение;" - ты готова на библии поклясться, что этот отбор - всегда первый?
33 Xelga
 
15.05.12
18:44
(32) нет конечно, вот и спрашиваю, но что-то ни один рабочий вариант мне еще не предложили...
34 Азазелло
 
15.05.12
18:48
(33) Параметры.Отбор.Владелец
35 Конфигуратор1с
 
15.05.12
18:48
(33)Объект.ВЛаделец
36 Конфигуратор1с
 
15.05.12
18:50
(35)сорри не прочитал что для списка а не элемента