|   |   | 
| 
 | Метод для регистра сведений возвращающий значение | ☑ | ||
|---|---|---|---|---|
| 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) спасибо, попробовала - работает.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |