8.х Регистр сведений

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Sonya, 24 дек 2008.

  1. TopicStarter Overlay
    Sonya
    Offline

    Sonya Опытный в 1С

    Регистрация:
    16 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Баллы:
    26
    Версия 1С версия 8.0. Есть регистр сведений который записывает Фамилию и количество прописанных.
    Есть документ в котором выбирается Фамилия и вводится количество которое делиться на количество прописанных, которое нужно взять из регистро сведений срез последних.
    Как при выборе Фамилии появлялось в документе количество прописанных из регистро сведений?


    Код:
    Физлицо = Справочники.ФизическиеЛица;	 
    СтруктураОтбора = Новый Структура; 
    СтруктураОтбора.Вставить("Физлицо", Физлицо); 
    //СтруктураОтбора.Вставить("Прописанных", Прописанных);
    // Получить структуру с данными актуальных значений ресурсов 
    СтруктураРесурсов = РегистрыСведений.РаботникиОрганизаций.ПолучитьПоследнее(ТекущаяДата(), СтруктураОтбора); 
    // Сообщить "последних" прописанных
    Сообщить(СтруктураРесурсов.Прописанных);
    
  2. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Прежде всего необходимо привязать написанную Вами процедуру, которая получает количество прописанных к элементу управления на форме, используемый для ввода фамилии, например ч/з событие ПриИзмении. И лучше всего воспользоваться запросом для получения нужных данных, например так:

    Код:
    Процедура ФамилияПриИзменении(Элемент)
    Запрос=новый Запрос;
    Запрос.Текст	= "ВЫБРАТЬ
    |	Выбрано.прописано
    |ИЗ
    |	РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ТекДата, Фамилия = &фамилия) КАК Выбрано";
    
    Запрос.УстановитьПараметр("ТекДата", Дата);
    Запрос.УстановитьПараметр("Фамилия", Элемент.Значение);
    
    Рез = Запрос.Выполнить();
    Если Не Рез.Пустой() Тогда
    Выборка = Рез.Выбрать();
    Выборка.Следующий();
    <Нужный реквизит> = Окр(?(Выборка.Прописано = 0,0,<введенное количество> /          Выборка.Прописано),4);
    КонецЕсли;    
    
    
    КонецПроцедуры
    
    
    Успехов
  3. TopicStarter Overlay
    Sonya
    Offline

    Sonya Опытный в 1С

    Регистрация:
    16 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Баллы:
    26
    Я сделала в документе ПриИзменении
    Код:
    Процедура НачисленияФизлицоПриИзменении(Элемент)
    СтрокаТабличнойЧасти =  ЭлементыФормы.Начисления.ТекущиеДанные;
    СтрокаТабличнойЧасти.Прописанных = КоличествоПрописанных(Дата,Элемент.Значение); 
    КонецПроцедуры
    
    и в общем модуле написала
    Код:
    Функция КоличествоПрописанных(АктуальнаяДата,ЭлементФизлицо) <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/экспорт')">Экспорт	</span>                      
    Отбор=Новый Структура("Физлицо",ЭлементФизлицо);
    ЗначенияРесурсов = РегистрыСведений.РаботникиОрганизаций.ПолучитьПоследнее(АктуальнаяДата, Отбор);
    Возврат ЗначенияРесурсов.Прописанных;
    КонецФункции
    
    Но хотелось бы запросом как написали мне, но запросом почему то не работает
  4. Неназываемый
    Offline

    Неназываемый Опытный в 1С Команда форума

    Регистрация:
    2 фев 2007
    Сообщения:
    507
    Симпатии:
    7
    Баллы:
    29
    :unsure: Я уж думал тут монолог, очень ники похожи :smile:
  5. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Так запрос я написал для примера - его необходимо писать конкретно под Ваш регистр. А если работает то и трогать не нужно.
    Успехов.
  6. TopicStarter Overlay
    Sonya
    Offline

    Sonya Опытный в 1С

    Регистрация:
    16 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Баллы:
    26
    О! Все получилась теперь научилась и через запросы получать регистр сведений, оказывется фамилия - это измерение ресурса РегистраСведений.РаботникиОрганизации а у меня это Физлицо.
    Все тему можно закрывать.

Поделиться этой страницей