Имя: Пароль:
1C
1С v8
Структура регистра сведений
0 an_str
 
28.07.14
15:58
Есть документ "Конструктор". В нем имеем 3 табличные части "Конструкции", "Методы", "Ресурсы" и реквизит ОбъектЗатрат. Табличная часть "Методы" связана с "Конструкциями" реквизитом "УИСтроки", а табл. часть "ресурсы" связана соот-но с "методами" реквизитом "УИСтрокиМетоды". Мне необходимо эту структуру где-то хранить. Было принято решение хранить в регистре сведений...но я пока не знаю как правильно его орагнизовать.
Что пока имею. Сделала регистр сведений "СоставБюджета", периодичность "в пределах секунды", режим записи "подчинение регистратору". Измерения: ОбъектЗатрат, Конструкция, Метод, Ресурс. В обработке проведения документа проведура:

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
    ТаблицаДвижений = СформироватьДвиженияПоСоставу();
    Движения.СоставБюджета.Записывать = Истина;
    Движения.СоставБюджета.Очистить();
    
    Для Каждого ТекСтрока Из ТаблицаДвижений Цикл
        Движение = Движения.СоставБюджета.Добавить();
        Движение.Период = Дата;
        Движение.ОбъектЗатрат = ОбъектЗатрат;
        ЗаполнитьЗначенияСвойств(Движение,ТекСтрока);
    КонецЦикла;
КонецПроцедуры


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


В таком раскладе, если я захочу скопировать документ и незначительно что-то поменять, уже при записи в регистр будет ругаться, что такие записи существуют. как правильно организовать эту схему?
1 hhhh
 
28.07.14
16:33
добавьте измерение ДокументКонструктор. или вообще, только одно это измерение, остальные выкиньте в ресурсы.
2 an_str
 
28.07.14
16:49
(1) подчинение регистратору тоже оставлять? и, наверное, мне все-тки нужно делать проверку какую-то, чтобы одинаковые составы не записывать...Мне это необходимо для подбора в следующем документе. Когда я к примеру выберу конструкцию, чтобы подхватились ее методы и соот-но ресурсы
3 Мимохожий Однако
 
28.07.14
16:58
Пляши от того, что хочешь видеть в результате. С отчета начинай.
4 Лефмихалыч
 
28.07.14
17:04
(0) не понятно, зачем РС, когда все то же самое можно вот так просто взять и сохранить в табличных частях документа. Ну, раз уж так прямо зудит хранить в РС, я бы три РС и использовал. Для нормализации.
5 an_str
 
28.07.14
17:09
(3) мне отчета не нужно будет. Необходимо реализовать некий механизм заполнения документа. Внешний вид документа http://upload.akusherstvo.ru/image660186.jpg , чтоб понятнее было. Мне необходимо сохранить структуру, чтобы при создании документа в следующий раз была возможность открыть форму подбора и при выборе конструкции подтянулись и методы и ресурсы
6 an_str
 
28.07.14
17:11
Вот что получаю при проведении в регистре: http://upload.akusherstvo.ru/image660187.jpg
7 an_str
 
28.07.14
17:12
(4) зачем аж 3 регистра?
8 Лефмихалыч
 
28.07.14
17:24
(7) а зачем документ? Храни все в справочнике с одним реквизитом Строка(0) по имени "ВСЁ"
Для нормализации - раз. Ну и для ТРЁХ и РАЗНЫХ объектов данных
9 Мимохожий Однако
 
28.07.14
17:36
(5)Тогда и регистр не нужен. Микроскопом по гвоздю. ИМХО.
10 an_str
 
28.07.14
17:37
(8) эм..неочень поняла. Т.е. вместо документа делаем справочник. Элемент этого справочника будет иметь 3 табл части и здесь мы будем производить весь расчет? чем мне это поможет, если я захочу создать еще один расчет бюджета на конкретный объект? мне придется заводить новый элемент справочника и заново все подбирать...не будет никакой истории...и еще сейчас у меня при проведении документа устанавливаются цены в рс на ресурсы...
11 Лефмихалыч
 
28.07.14
17:40
(10) на вот тебе, держи http://s.pikabu.ru/images/previews_comm/2012-06_2/13392969946731.jpg

а если серьезно, то я повторяю вопрос: зачем и почему решили, что эту инфу надо хрнаить в регистре, а не в табличных частях самого документа?
12 an_str
 
28.07.14
18:33
(11) я же уже писала для создания других бюджетов...Чтобы каждый раз не подбирать методы и ресурсы. А выбрать только конструкцию и подтягивать относящиеся к ней методы и ресурсы. Т.е. должна быть в идеале некая библиотека...