У меня 1с Предприятие 8.2,работаю в обычном приложении,у меня задача...
Задача: Потребуется реализовать алгоритм расчета нового качества объекта проката исходя из количества передач объекта проката в прокат и текущими записями регистра сведений «КачествоОбъектаПроката»: если количество передач объекта составляет менее 51% от максимально допустимого количества передач – качество отличное, если более 51% и менее 80% -- качество среднее, если более 80% -- качество плохое; если расчетное качество выше установленного в регистре сведений, запись в регистр не производится. Количество передач в прокат объекта проката можно получить из периодического регистра сведений «ИзносОбъектаПроката», запись в который производит данный документ
Т.е. в документе ВыдачаОбъектаПрокатаВПрокат считается износ объекта,а в документе ВозвратОбъектаПроката его качество...
Как это можно реализовать,помогите пожайлуста!
---
aguilar, можно все что угодно при достаточном желании.
Однако считаю что все таки необходимо тебе как то выложить свою базу.
Чтобы советы не на пальцах тебе объясняли)
---
aguilar, привет
учитывая количество вопросов по твоей конфе давно бы уже выложил её для скачивания) Чтобы объяснять могли хотя бы не на пальцах)
Расчет простой. Сложного ничего не вижу. Кроме того что непонятно все таки что где хранится.
---
KlesAlex, привет))
Можешь написать как сделать чтобы для конкретного фильма,запись не производилась новой строчкой,а плюсовало.
Сейчас у меня такого вида
Фильм: Износ:
Ральф 1
Ральф 1

А нужно) Ральф 2
---
aguilar, можно все что угодно при достаточном желании.
Однако считаю что все таки необходимо тебе как то выложить свою базу.
Чтобы советы не на пальцах тебе объясняли)
---
KlesAlex, Мой давний помощник) Давай я тебе скину базу,а ты попробуешь это в ней сделать,а я тебе ща деньги за лучший ответ,просто не первый раз уже помогаешь,в тебе уверен:)
---
aguilar, не мне судить о том кто писал эту конфигурацию и с какими целями.
Но имея то что ты имеешь

Такая связка

```1c
    Запрос = Новый Запрос;
    Запрос.Текст = "Выбрать ИзносОбъектаПроката.Износ КАК Износ ИЗ РегистрСведений.ИзносОбъектаПроката КАК ИзносОбъектаПроката ГДЕ ИзносОбъектаПроката.Фильм = &Фильм И ТИПЗНАЧЕНИЯ(ИзносОбъектаПроката.Регистратор) = ТИП(Документ.ПередачаОбъектаПрокатаВПрокат)"
    Запрос.УстановитьПараметр("Фильм",<ВыбранныйФильм>)
    Рез = Запрос.Выполнить.Выгрузить();
    Количество = Рез.Количество();
```

Количество - будет количество передач в прокат. Соответственно расчитываешь износ в том месте, где тебе такой расчет может потребоваться.

И мне не понятно зачем и передача в прокат и возврат пишут в этот регистр.
Вообщем нужно больше пояснений, чтобы понять что же ты все таки хочешь получить и что самое главное где и в какой момент
---
KlesAlex,
Самое простое обьяснение это то что одна запись регистра - это один регистратор. Если вдруг отменят проведение документа то количество записей должно меняться. А в твоем случае нужно просто подбить сумму строчек, по умолчания одна строчка равно 1 Износ, вот и считай за какой то период сколько набежало, так что все просто и логично.
---
KlesAlex, Рез = Запрос.Выполнить.Выгрузить(); На методе "Выполнить" пишет ошибку,я что=то не так сделал?
---
aguilar, так будет проще (15) fomstas, Запрос по конкретному фильму на количество записей в регистре и сумму строк - это и будет количество
---
Если нужно подрабная инфа,могу предоставить..
---
в прокатном справочнике(я так понимаю справочник номенклатура) задаем макс. количество передач. далее создаем два регистра сведений подчиненному регистратору. Затем считаем количество записей регистра. сравниваем его с максимальным значением и исходя из этого делаем запись по второму регистру. примерно так....
---
rgrisha, Макс. количество передач находят в справочнике Фильм,это его реквезит.Так вот мне и не понятно как это все считать,мне нужен какой-то код...Саму логическую цепочку я осознаю.Я просто новичек,учусь только..вот(
---
конфа как называется?
---
У меня не типовая,а самописная с нуля. Работаю в 1с Предприятие 8.2,обычное приложение.
---
тут без конфиги не объяснишь...
---
Конфига здесь не причем,мне нужно знать как сделать выборку износа , и как этот износ подставить в другой документ.
---
aguilar, Дык, в модуле документа ВозвратОбъектаПроката обратиться к регистру сведений «ИзносОбъектаПроката». Если в этот регистр при выдаче пишется количество выдач, т.е. каждый раз число, большее на единицу, то считать его методом регистра сведений "ПолучитьПоследнее" с установкой соответствующего отбора. Примерно так:
Отборчик = Новый Структура;
Отборчик.Вставить("Фильм", объектПроката);
....
рег = РегистрыСведений.ИзносОбъектаПроката.ПолучитьПоследнее(Дата, Отборчик);
КоличествоВыдач = рег.КоличествоВыдач;

Ну или использовать запрос к регистру сведений «ИзносОбъектаПроката». Там же, в модуле документа ВозвратОбъектаПроката.
---
Martinian, При установке регистра Износ в другом документе он делает запись износа не 1+1,а записывает новую строчку,как можно это сделать?
---
aguilar, Какую строчку? Какие измерения и ресурсы?
---
Строчку в регистре сведений ИзносОбъектаПроката
Измерения - Фильм, ресурс - износ. Когда отправляешь фильм на выдачу один и тот же,он формирует отдельную запись(новую строчку в регистре). А надо если фильм один и тотже то Износ = 1+1 и т.д.
---
т.е. нужно изменять запись регистра?
Может проще сделать запрос на Количество(фильм) и получить число Ральфов?
---
С методом выполнить разобрался,там скобочки не стояли просто. Но он все равно пишет отдельную строчку в регистре сведений,я что-то снова не так делаю :(
---
aguilar, ты просто объясни чего ты хочешь добиться
И вопрос. - конфу ты писал?
Мне до сих пор не понятно какой смысл в регистр сведений касаемо износа делать проводки двумя документами.

По моему мнению если есть желание хранить именно там данные проводки передачи в прокат по этому регистру убрать
А возврат делать тлько в текущей дате без перепроведения задним числом. Перед проведением получать срез последних - и количество прокатов соответственно. И делать новую проводку а в ресурс количество писать прошлое количество +1. При такой организации в любой момент получая срез последних ты будешь иметь кол-во передач объекта в прокат.