Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 04:27
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Структура регистра сведений  (Прочитано 860 раз)

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

Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Есть документ "Конструктор". В нем имеем 3 табличные части "Конструкции", "Методы", "Ресурсы" и реквизит ОбъектЗатрат. Табличная часть "Методы" связана с "Конструкциями" реквизитом "УИСтроки", а табл. часть "ресурсы" связана соот-но с "методами" реквизитом "УИСтрокиМетоды". Мне необходимо эту структуру где-то хранить. Было принято решение хранить в регистре сведений...но я пока не знаю как правильно его орагнизовать.
Что пока имею. Сделала регистр сведений "СоставБюджета", периодичность "в пределах секунды", режим записи "подчинение регистратору". Измерения: ОбъектЗатрат, Конструкция, Метод, Ресурс. В обработке проведения документа процедура:



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


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


В таком раскладе, если я захочу скопировать документ и незначительно что-то поменять, уже при записи в регистр будет ругаться, что такие записи существуют. как правильно организовать эту схему? может проверять комбинацию объектЗатрат, конструкция, метод, ресурс..и если уже такая есть, то в регистр не записывать? есть более рациональное решение?

Последний раз редактировалось: MuI_I_Ika; 28 Июл 2014, 22:39


Оффлайн DmitriyF

  • *****
  • Сообщений: 729
  • РЕПУТАЦИЯ: 48
  • КПД: 7%
  • Регистрация: 2013-03-18
  • Сайт: 
  • Профессия: Разработчик 1С
Есть документ "Конструктор". В нем имеем 3 табличные части "Конструкции", "Методы", "Ресурсы" и реквизит ОбъектЗатрат. Табличная часть "Методы" связана с "Конструкциями" реквизитом "УИСтроки", а табл. часть "ресурсы" связана соот-но с "методами" реквизитом "УИСтрокиМетоды". Мне необходимо эту структуру где-то хранить. Было принято решение хранить в регистре сведений...но я пока не знаю как правильно его орагнизовать.
Что пока имею. Сделала регистр сведений "СоставБюджета", периодичность "в пределах секунды", режим записи "подчинение регистратору". Измерения: ОбъектЗатрат, Конструкция, Метод, Ресурс. В обработке проведения документа процедура:



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


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



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


Теги:
 

Отличие проводки по регистру сведений от проводки по регистру накопления?

Автор DirecTwiXРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 4849
Последний ответ 18 Апр 2012, 02:19
от Dethmontt
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7749
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984
Проверка на "новую" запись в рег. сведений

Автор nomer13Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 14356
Последний ответ 11 Янв 2011, 10:04
от nomer13
Регистры накопления, Регистры сведений, Документы, Проведение

Автор kot_ooРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 12
Просмотров: 8140
Последний ответ 17 Янв 2014, 21:52
от kot_oo
Регистр сведений "Версии объектов"

Автор ЕвгенийЗерноРаздел Пользователям "1С - Предприятие 8"

Ответов: 4
Просмотров: 534
Последний ответ 20 Июл 2017, 17:00
от ЕвгенийЗерно

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
154 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
46 Сообщений
oleg-x
44 Сообщений
andron81_81
44 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
BuhRust
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 133
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal