|
Метод для регистра сведений возвращающий значение | ☑ | ||
---|---|---|---|---|
0
El_lynx
28.12.16
✎
09:16
|
Здравствуйте, помогите, пожалуйста, написать метод в модуле менеджера регистра сведений. Регистр: периодичность день, подчиненный регистратору, измерения "ТС" и "Дата", ресурсы "Водитель".
На вход получает значения ТС и Дата, должен возвращать Водителя. Функция РаспределиниеБригад (Дата, ТС) ??? возврат КонецФункции И еще вопрос, если у меня периодичность регистра день, нужно ли мне измерение дата, чтобы данный метод работал? Или можно сделать метод, сравнивающий полученную на вход дату с периодом? |
|||
1
butterbean
28.12.16
✎
09:17
|
периодичность не нужна, т.к. на след день информация о водителе неактуальна
|
|||
2
Лефмихалыч
28.12.16
✎
09:18
|
измерение Дата вообще убери
у периодического регистра и так уже есть такой метод РегистрСведенийМенеджер.<Имя регистра сведений>.ПолучитьПоследнее (InformationRegisterManager.<Имя регистра сведений>.GetLast) РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>) ПолучитьПоследнее (GetLast) Синтаксис: ПолучитьПоследнее(<КонецПериода>, <Отбор>) Параметры: <КонецПериода> (необязательный) Тип: Дата; МоментВремени; Граница. Определяет момент времени, по который необходимо получить значения ресурсов. Может задаваться значениями типа Дата, МоментВремени или Граница. Если параметр не указан, то будут возвращены значения ресурсов самой последней записи регистра. <Отбор> (необязательный) Тип: Структура. Структура, содержащая отбор по измерениям регистра. Имя ключа структуры должно совпадать с именем измерения регистра, заданного в конфигураторе, а значение элемента структуры - задает отбираемое по данному измерению значение. Структура дополнительно может иметь элементы, соответствующие разделителям регистра с уровнем разделения НезависимоИСовместно, в состав которых входит регистр. Если такой элемент структуры задан для используемого в сеансе разделителя, значение для этого элемента должно совпадать со значением разделителя, иначе будет вызвано исключение. Если параметр не указан, то отбор не используется. Возвращаемое значение: Тип: Структура. Возвращает структуру, содержащую значения ресурсов. Описание: Получает значения ресурсов наиболее поздней записи регистра, соответствующей указанным периоду и значениям измерений регистра. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Примечание: Применим только для периодических регистров сведений. Пример: Доллары = Справочники.Валюты.НайтиПоНаименованию("USD"); Отбор = Новый Структура; Отбор.Вставить("Валюта", Доллары); Курсы = РегистрыСведений.КурсыВалют; ТекКурс = Курсы.ПолучитьПоследнее(ТекущаяДата(), Отбор); Сообщить("Текущий курс доллара: " + ТекКурс.Курс + " руб."); |
|||
3
Неверный Параметр И
28.12.16
✎
09:19
|
(1) И отчеты за прошедшие периоды тоже можно выбросить. Кому они нужны?
|
|||
4
butterbean
28.12.16
✎
09:25
|
(3) они хранятся в измерении Дата
|
|||
5
El_lynx
28.12.16
✎
09:28
|
(1)(3)да я уже готова всё выбросить :)))
(2) т.е. я правильно понимаю, метод в регистре мне создавать не нужно? а чтобы обратиться к регистру из другого документа, и узнать, предположим, какой водитель на данную машину сегодня, я должна написать следующее: РегистрСведенийМенеджер.<Имя регистра сведений>.ПолучитьПоследнее (ТекущаяДата, ТС); И он мне должен вернуть водителя? |
|||
6
Mankubus
28.12.16
✎
09:30
|
>>И он мне должен вернуть водителя?
см. (2) Возвращаемое значение: Тип: Структура. Возвращает структуру, содержащую значения ресурсов. |
|||
7
Лефмихалыч
28.12.16
✎
09:30
|
(5) метод писать не нужно. Что должна написать, подробно и даже с примером описано в (2), прочитай внимательно.
|
|||
8
butterbean
28.12.16
✎
09:31
|
(5) он вернет не на выбранную дату, а просто срез последних на эту дату. Т.е. если на 5 декабря никто не был назначен, то вернёт того кто был на 4-е, или 3-е. Поэтому лучше здесь срезом не пользоваться.
|
|||
9
Неверный Параметр И
28.12.16
✎
09:40
|
(4) Дата чего?
|
|||
10
Лефмихалыч
28.12.16
✎
09:43
|
(5)Используй срез, не слушай (8)
он в целом неправды не сказал, но все сказанное сказано зря. |
|||
11
El_lynx
28.12.16
✎
09:44
|
(7) (8) (10) Хорошо, про метод ПолучитьПоследнее я поняла, спасибо, попробую.
Проблема в том, что если сегодня на машину никто не назначен, для пользователя должна выдаваться ошибка и чтоб данную машину он не смог выбрать и отправить ее в рейс. Если я буду пользоваться этим методом и на данный период (день) нет записи в регистре по машине, он вернет "не определено"? или вернет данные за прошлый период где эти записи есть? |
|||
12
h-sp
28.12.16
✎
09:47
|
(11) лучше выбирайте запросом
|
|||
13
butterbean
28.12.16
✎
09:48
|
(10) очень жду комментариев для (11)
|
|||
14
_stay true_
28.12.16
✎
09:51
|
(11) 1. Лучше это реализовать запросом к регистру;
2. Без фотокарточки не взлетит. |
|||
15
El_lynx
28.12.16
✎
09:59
|
(12) (14) 1. а как именно это сделать запросом? У меня и возникла проблема написать данный метод в ручную))
2. фотокарточку потом) |
|||
16
zvial
28.12.16
✎
10:21
|
Так, не?
Функция ДайВодилу(Дата, ТС) Водила = Неопределено; Запрос= Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |Водила |ИЗ |РегистрСведений.ВодилыНаТС |ГДЕ ТС = &ТС И Период = &Дата"; Запрос.Установитьпараметр("ТС", ТС); Запрос.Установитьпараметр("Дата", Дата); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Водила = Выборка.Водила; КонецЕсли; Возврат Водила; КонецФункции Ну и экспортной ее в модуль менеджера |
|||
17
zvial
28.12.16
✎
10:22
|
Теперь фотокарточку )
|
|||
18
El_lynx
28.12.16
✎
10:40
|
(16) (17) Спасибо) Попробую применить. Фотокарточку добавила))
|
|||
19
Лефмихалыч
28.12.16
✎
11:18
|
(11) (13) в том, что ПолучитьПоследнее вернет, будет поле Период, его можно сравнить с датой документа и на основании этого обложить пользователя обшибками
|
|||
20
El_lynx
29.12.16
✎
08:25
|
(19) спасибо, попробовала - работает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |