Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 03:43

Запись через обработку в реестре.

Автор mila1231, 20 ноя 2015, 10:47

0 Пользователей и 1 гость просматривают эту тему.

mila1231

вопрос вот в чём можно ли через обработку изменить значение в регистре сведений?
Есть обработка, в ней 2 реквизита, один берётся из реестрСведений, другой просто тип булео, т.в например, если я в реестр добавлю ещё один ресурс можно ли будет при изменении реквизита в обработке изменить измерение в реестре сведений именнно конкретной строки, т.е не записать новую строку, а изменить ту которая уже записана?..короткая часть кода...
ТекДанные = ЭлементыФормы.приборы_принятые.ТекущиеДанные ;
Запрос = новый Запрос;         
Запрос.Текст = "ВЫБРАТЬ
                  | РеестрДвиженияПрибора.Номер_прибора_регистр,
                  | РеестрДвиженияПрибора.действие_регистр,
                  | РеестрДвиженияПрибора.Контрагент_регистр
                  |ИЗ
                  | РегистрСведений.РеестрДвиженияПрибора КАК РеестрДвиженияПрибора
  |где  РеестрДвиженияПрибора.Номер_прибора_регистр= &Текущийномер  ";
Запрос.УстановитьПараметр("ТекущийНомер", ТекДанные.Номер_прибора);
Выборка=Запрос.Выполнить().Выбрать();
Пока выборка.Следующий() Цикл

// честно не знаю даже что тут должно быть, поэтому свою муру вырезала


     конецЦикла;


Зы надеюсь понятно объяснила, чего не понимаю, если не трудно то хотя бы какую-то зацепку, что посмотреть и где порыть, потому как гуглом смотрю и ничего не вижу.


vitasw

1. РС периодический или нет?
2. РС подчинен регистратору или нет?
3. Возможно ли с помощью отбора по измерениям РС получить перечень нужных записей? или там будут еще и "ненужные"?

mila1231

Цитата: vitasw от 20 ноя 2015, 10:52
1. РС периодический или нет?
2. РС подчинен регистратору или нет?
3. Возможно ли с помощью отбора по измерениям РС получить перечень нужных записей? или там будут еще и "ненужные"?

1.РС непериодический
2. Подчинен регистратору
3. Отбор идёт по измерению Номер_прибора_регистр, т.е тут в обработке есть регистр номер_прибора, в него выводятся все данные РС из измерения  номер_прибор_регистр, т.е я решила(может и не правильно) взять текущие данные из обработки, т.е текущий номер прибора и сравниваю с номерами в РС, нахожу нужную строку(это я через запрос делаю) и дальше надо в этой строке поменять значение ресурса.

ferrari314

Цитироватьчерез обработку изменить значение в регистре сведений?
Записи в регистр записываются менеджером записи
Создавайте менеджер, присваивайте все измерения идентифицирующие запись, редактируете все что нужно, записываете.
Пример:

// создаем менеджер записи
МенеджерЗаписи = РегистрыСведений.усШтрихКодыТоваров.СоздатьМенеджерЗаписи();

// указываем параметр, по которому определяем, где будем позиционираваться (если одно измерение)
МенеджерЗаписи.ШтрихКод = Выборка.ШтрихКод;
// либо // ЗаполнитьЗначенияСвойств(МенеджерЗаписи, Выборка); // если много измерений
//для периодических регистров нужно указать точное значение периода, на который введена запись регистра:
МенеджерЗаписи.Период = Выборка.ДатаЗаписи;

// прочитаем эту запись (внимание, эта команда обязательна, иначе можно ненароком очистить весь регистр!)
МенеджерЗаписи.Прочитать();

Если МенеджерЗаписи.Выбран() Тогда // убедились, что спозиционироваться удалось
// сообщаем, что именно и на какое значение нужно изменить в регистре
МенеджерЗаписи.ПартияТовара = ПартияТовара;

// записываем изменения в регистре
МенеджерЗаписи.Записать();

Иначе // спозиционироваться не удалось, можно выходить
Сообщить("Возникла проблема определения штрихкода в регистре через менеджер записи "+Выборка.ШтрихКод);
КонецЕсли;

mila1231

Цитата: ferrari314 от 20 ноя 2015, 11:03Записи в регистр записываются менеджером записи
Создавайте менеджер, присваивайте все измерения идентифицирующие запись, редактируете все что нужно, записываете.

он ошибку пишет "Менеджер записи не может быть использован для регистра с режимом записи "Подчинение регистратору""


ferrari314

Идентифицируйте запись. Отбор по регистратору поставьте, типа такого:
ПС = РегистрыСведений.ПериодСнятия.СоздатьНаборЗаписей();
ПС.Отбор.Регистратор.Установить(Док);
ПС.Прочитать();

vitasw

Цитата: mila1231 от 20 ноя 2015, 11:01т.е текущий номер прибора и сравниваю с номерами в РС, нахожу нужную строку(это я через запрос делаю) и дальше надо в этой строке поменять значение ресурса.

А через 2 месяца, когда вы благополучно забыли об таких коррекциях открываете отчет/движения документа и начинаете удивляться: в документе одно а в движениях другое.
Вариант поудивляться номер 2: откорректировали обработкой данные, после этого добрый пользователь перепровел документ, а вы спите спокойно, думая, что все хорошо.

mila1231

Цитата: vitasw от 20 ноя 2015, 11:31А через 2 месяца, когда вы благополучно забыли об таких коррекциях открываете отчет/движения документа и начинаете удивляться: в документе одно а в движениях другое.
Вариант поудивляться номер 2: откорректировали обработкой данные, после этого добрый пользователь перепровел документ, а вы спите спокойно, думая, что все хорошо.

Цитата: vitasw от 20 ноя 2015, 11:31
Цитата: mila1231 от 20 ноя 2015, 11:01т.е текущий номер прибора и сравниваю с номерами в РС, нахожу нужную строку(это я через запрос делаю) и дальше надо в этой строке поменять значение ресурса.

А через 2 месяца, когда вы благополучно забыли об таких коррекциях открываете отчет/движения документа и начинаете удивляться: в документе одно а в движениях другое.
Вариант поудивляться номер 2: откорректировали обработкой данные, после этого добрый пользователь перепровел документ, а вы спите спокойно, думая, что все хорошо.



А как тогда сделать правильно? я если честно голову даже над этой схемой сломала..
Есть движение прибора
Сначала он приходит(Документ приёмка) потом поверяетсяа(документ Поверка), потом выдаётся(документ Выдача), соответственно ввела перечисление со статусами(принят, поверен, выдан ) соответственно при проведении документа в регистр сведений записываются данные и нужный мне статус и номер_прибора
Так вот почему встал вопрос обработки.. т.к до того, как создать документ Поверка, человек должен выбрать из списка всех приборов со статусом "принят" нужный ему прибор.. т.е по дате не должно быть выборки в списке должны быть все не поверенные приборы.. вот я и думала в регистр ввести ещё одно измерение(в принципе это не ресурс, т.к по нему буду выборку тоже делать), который при создании документа Поверка будет принимать значение Истина.. и дальше, когда будет запускаться обработка в список этот прибор попадать не будет.. надеюсь понятно написала.. если не трудно подскажите как быть?? и как сделать красиво и правильно.

vitasw

У вас уже есть однозначное определение тех приборов, которые вам нужны - это статус. Зачем еще какие-то костыли?

mila1231

Цитата: vitasw от 20 ноя 2015, 12:04
У вас уже есть однозначное определение тех приборов, которые вам нужны - это статус. Зачем еще какие-то костыли?
угу, порывшись нашла СрезПоследних.. как поняла это надо в запросе подставить.. но как ещё не дотумкала... попробую разобраться самостоятельно))

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск