Пятница, 03.05.2024, 00:21
Приветствую Вас Гость | RSS
Главная Движения по регистру накопления - Форум Регистрация Вход
[Новые сообщенияУчастникиПравила форумаПоискRSS ]

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

  • Страница 1 из 1
  • 1
Модератор форума: MainGuru  
Форум » Раздел для разработчиков и внедренцев продуктов 1С » Программирование на 1С:Предприятие 8 » Движения по регистру накопления (Регистратор в движениях по регистру накопления)
Движения по регистру накопления
AlexДата: Пятница, 14.12.2007, 14:55 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 2
Репутация: 0
Статус: Offline
Подскажите пожалуйста, как узнать какие документы в конфигурации могут формировать записи в регистр накопления?

Хочу всё знать
 
MainGuruДата: Пятница, 14.12.2007, 15:13 | Сообщение # 2
Admin
Группа: Администраторы
Сообщений: 17
Репутация: 0
Статус: Offline
Самое простое решение - запустить 1С в режиме конфигуратора, найти регистр в дереве метаданных и открыть его свойства. На закладке "Регистраторы" в нижнем поле будет указан список документов - регистраторов для данного регистра.
 
AlexДата: Пятница, 14.12.2007, 15:42 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 2
Репутация: 0
Статус: Offline
Дело в том, что у меня нет прав на вход в конфигуратор, но мне очень нужно узнать какие документы могут двигать регистр.

Хочу всё знать
 
MainGuruДата: Пятница, 14.12.2007, 16:12 | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 17
Репутация: 0
Статус: Offline
Тогда возможно несколько вариантов решения.

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

Этот метод будет возвращать объекты типа ОбъектМетаданных

2. Создать набор записей регистра и посмотреть в отборе ограничение типа:
НаборЗаписей=РегистрыНакопления.Имя регистра.СоздатьНаборЗаписей();
Массив=НаборЗаписей.Отбор.Регистратор.ТипЗначения.Типы();
Для каждого Элем Из Массив Цикл
Сообщить(Элем);
КонецЦикла;

Этот метод будет возвращать объекты типа ДокументСсылка

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

 
MainGuruДата: Пятница, 14.12.2007, 17:14 | Сообщение # 5
Admin
Группа: Администраторы
Сообщений: 17
Репутация: 0
Статус: Offline
Хочу ещё обратить Ваше внимание на то, что второй вариант будет работать только для Регистров накопления, бухгалтерии, расчета и сведений, в которых свойство "Режим записи" установлено в "Подчинение регистратору". Для регистров сведений с независимым режимом записи регистраторов не существует и будет выдана ошибка.
 
SeverusДата: Воскресенье, 14.11.2010, 23:14 | Сообщение # 6
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
А у меня первое задание по 1С (8.2): конфигурация для учета дисков в библиотеке предприятия, причем каждый диск содержится в единственном экземпляре. Есть таблицы "Диски", "Абоненты" и "СтруктурныеПодразделения", документы "ВыдачаДиска" (движение - расход) и "ВозвратДиска" (движение - приход), регистр накопления "ДискиНаРуках". Регистр накопления "ДискиНаРуках" содержит измерения "Абонент" и "Диск", ресурс "Выдан" (это число 0 или 1, показывает число дисков в библиотеке в данный момент). Перед проведением документа о выдаче диска надо проверить, есть ли он в библиотек или он выдан. Если выдан, его же нельзя выдать, пока его не вернут. У меня не получается сделать такую проверку. Конструктор генерирует для обработки движения такой запрос:

Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Движения.ДискиНаРуках.Записывать = Истина;
Для Каждого ТекСтрокаПереченьДисков Из ПереченьДисков Цикл
// регистр ДискиНаРуках Расход
Движение = Движения.ДискиНаРуках.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Абонент = Абонент;
Движение.Диск = ТекСтрокаПереченьДисков.Диск;
Движение.Выдан = 1;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры

Помогите, кто-нибудь, пожалуйста...

 
Форум » Раздел для разработчиков и внедренцев продуктов 1С » Программирование на 1С:Предприятие 8 » Движения по регистру накопления (Регистратор в движениях по регистру накопления)
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024 Конструктор сайтов - uCoz