Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 23:53

Подчинённые справочники

Автор gliokker, 08 фев 2016, 12:04

0 Пользователей и 1 гость просматривают эту тему.

gliokker

Всем привет.
Добавил 2 новых справочника (Таблицы,Таблицы1)
Эти 2 справочника подчинены справочнику Склады
В чём собственно проблема, справочник склады имеет (ну скажем) склад под название Резервуар 1
К этому складу подчинены 2 спр (Таблицы, Таблицы1) в которых есть какие то данные (Ну там объём, температура и т.д)
Я не могу достучаться до этих 2-ух новых справочников из документа
\Для Каждого Строка ИЗ ТабличнаяЧасть1  Цикл
    СпрСклады = Справочники.Склады.СоздатьЭлемент();
    СпрТабл = Справочники.Таблицы.СоздатьЭлемент();
   СпрТабл2= Справочники.Таблицы1.СоздатьЭлемент();
Побывал вот так но что то не пошло)))
Выборка = Справочники.Склады.Выбрать( , Владелец);
    Если Выборка.Следующий() = Истина Тогда
       Бла бла бла
    КонецЕсли;
Пишет что владельца не видит

vitasw

Цитата: gliokker от 08 фев 2016, 12:04Выборка = Справочники.Склады.Выбрать( , Владелец);
и

Цитата: gliokker от 08 фев 2016, 12:04Эти 2 справочника подчинены справочнику Склады
ничего не смущает?

gliokker

Цитата: vitasw от 08 фев 2016, 13:07
Цитата: gliokker от 08 фев 2016, 12:04Выборка = Справочники.Склады.Выбрать( , Владелец);
и

Цитата: gliokker от 08 фев 2016, 12:04Эти 2 справочника подчинены справочнику Склады
ничего не смущает?
Спасибо

cska-fanat-kz

Что значит достучаться?

какой сакральный смысл вот в этом?
Для Каждого Строка ИЗ ТабличнаяЧасть1  Цикл
    СпрСклады = Справочники.Склады.СоздатьЭлемент();
    СпрТабл = Справочники.Таблицы.СоздатьЭлемент();
   СпрТабл2= Справочники.Таблицы1.СоздатьЭлемент();

и в этом?
Выборка = Справочники.Склады.Выбрать( , Владелец);
    Если Выборка.Следующий() = Истина Тогда
       Бла бла бла
    КонецЕсли;

естественно на Владелец ругается.
хотя бы потому, что у Склада нету никакого владельца...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

gliokker

Цитата: cska-fanat-kz от 08 фев 2016, 14:26
Что значит достучаться?

какой сакральный смысл вот в этом?
Для Каждого Строка ИЗ ТабличнаяЧасть1  Цикл
    СпрСклады = Справочники.Склады.СоздатьЭлемент();
    СпрТабл = Справочники.Таблицы.СоздатьЭлемент();
   СпрТабл2= Справочники.Таблицы1.СоздатьЭлемент();

и в этом?
Выборка = Справочники.Склады.Выбрать( , Владелец);
    Если Выборка.Следующий() = Истина Тогда
       Бла бла бла
    КонецЕсли;

естественно на Владелец ругается.
хотя бы потому, что у Склада нету никакого владельца...
Смысл всего это,ЕСТЬ Градуированная таблица (СпрТаблицы) + Таблица миллиметров(СпрТаблицы1)
Пользователь заходит в документ проставляет номенклатуру + склад + УровеньНаНачало Смены
(УровеньНаНачалоэто и есть тот реквизит по которому потом будет всё считаться)
Нажимает кнопку рассчитать, и поехал расчёт, Все данные для расчёта забиты в этих 2-ух справочниках.
Я понял что у склада нету владельца,

cska-fanat-kz

точно точно должны быть подчиненные справочники?
не регистры сведений, не регистры накопления?

подчиненный справочник заполняется...
    НовыйЭлемент = Справочники.СпрТаблицы.СоздатьЭлемент();
    НовыйЭлемент.Владелец = Склад;
    ...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

gliokker

Цитата: cska-fanat-kz от 08 фев 2016, 15:00
точно точно должны быть подчиненные справочники?
не регистры сведений, не регистры накопления?

подчиненный справочник заполняется...
    НовыйЭлемент = Справочники.СпрТаблицы.СоздатьЭлемент();
    НовыйЭлемент.Владелец = Склад;
    ...
Можно было и регистры, я уже все понял, как мне до них достучатся, они заполнены в семёрки, щас перекину, и будет усё ок.))))
если я что то непонятно объяснил вот код из семёрки.
//Перем СпрТабл;
Процедура Вычислить()
   ВыбратьСтроки();
   Пока ПолучитьСтроку()=1 Цикл
    СпрСклады= СоздатьОбъект("Справочник.Склады");
    СпрТабл = СоздатьОбъект("Справочник.Таблицы");
   СпрТабл2= СоздатьОбъект("Справочник.Таблицы2");
   Если СпрСклады.НайтиЭлемент(Резервуар)=1 Тогда
       ТекРезервуар=СпрСклады.ТекущийЭлемент();
      СпрТабл.ИспользоватьВладельца(ТекРезервуар);
      СпрТабл2.ИспользоватьВладельца(ТекРезервуар);
      //
      СпрТабл.ВыбратьЭлементы();
      СпрТабл2.ВыбратьЭлементы();
      Пока СпрТабл.ПолучитьЭлемент()=1 Цикл
         ТекЭлемент=СпрТабл.ТекущийЭлемент();
            Если УровеньНач=ТекЭлемент.Уровень Тогда
            ОбъемНач=ТекЭлемент.Объем;
            МассаНач=ПлотностьНач*ОбъемНач;
            КонецЕсли;
            Если УровеньКон=ТекЭлемент.Уровень Тогда
            ОбъемКон=ТекЭлемент.Объем;
            МассаКон=ПлотностьКон*ОбъемКон;
         КонецЕсли;
      КонецЦикла;
      Пока СпрТабл2.ПолучитьЭлемент()=1 Цикл
         ТекЭлемент=СпрТабл2.ТекущийЭлемент();
         Если ммНач=ТекЭлемент.Уровень2 Тогда
            Объем2Нач=ТекЭлемент.Объем2;
            ОбъемНач=ОбъемНач+Объем2Нач;
            МассаНач=ПлотностьНач*ОбъемНач;   
         КонецЕсли;
             Если ммКон=ТекЭлемент.Уровень2 Тогда
            Объем2Кон=ТекЭлемент.Объем2;
            ОбъемКон=ОбъемКон+Объем2Кон;
            МассаКон=ПлотностьКон*ОбъемКон;   
         КонецЕсли;
      КонецЦикла;
      КонецЕсли;
   КонецЦикла;
КонецПроцедуры 
                 

cska-fanat-kz

ну и?
даже готовый код есть, пусть и с 7ки.
осталось только правильно портировать.

кстати вопрос о целесообразности справочников - снимается.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск