![]() |
![]() |
![]() |
|
Рег. сведений, как заменить значение? | ☑ | ||
---|---|---|---|---|
0
ПетяПетькин
19.01.10
✎
20:24
|
Туплю, т.к. вечер
Подскажите! есть запрос, который выбирает записи по рег. сведений и надо в цикле по этим записям заменять значение одного реквизита и потом записывать этот рег. сведений Что надо использовать? СоздатьМенеджерЗаписи(), Прочитать() Записать() ? |
|||
1
ПетяПетькин
19.01.10
✎
20:25
|
имею ввиду, что надо использовать, чтобы записать уже существующую запись регистра, но с новым значением реквизита?
|
|||
2
AndreyFAN
19.01.10
✎
20:28
|
подчиненный регистр?
|
|||
3
ПетяПетькин
19.01.10
✎
20:29
|
независимый
|
|||
4
ПетяПетькин
19.01.10
✎
20:33
|
народ, скажите че-нить?
|
|||
5
AndreyFAN
19.01.10
✎
20:33
|
Запись = РегистрыСведений.ШтрихКоды.СоздатьМенеджерЗаписи();
Запись.Товар = Товар; Запись.ШтрихКод = ШтрихКод; Запись.Прочитать(); Запись.ШтрихКод = ШтрихКодНовый; Запись.Записать(); |
|||
6
ПетяПетькин
19.01.10
✎
20:35
|
спасибо!
|
|||
7
asady
19.01.10
✎
20:49
|
(0) уточни именно реквизит
или ресурс или измерение |
|||
8
Voffka
19.01.10
✎
20:50
|
(6) Не делай как в (5)
|
|||
9
AndreyFAN
19.01.10
✎
20:51
|
в (5) измерение
|
|||
10
AndreyFAN
19.01.10
✎
21:02
|
по записи Реквизита вроде так (тут отбор по периоду)
НаборЗаписей=РегистрыСведений.НашРегистр.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Период.Установить(НаДату); НовЗапись=НаборЗаписей.Добавить(); НовЗапись.Период=НаДату; НовЗапись.НашРеквизит=НовоеЗначениеРеквизита; НаборЗаписей.Записать(Истина); |
|||
11
ПетяПетькин
19.01.10
✎
21:22
|
да все получилось
у меня была замена значения измерения регистра |
|||
12
NcSteel
19.01.10
✎
22:59
|
Иногда думаешь "Жалко что нет оценки ответа", так бы (5) заслужило бы "-3"
|
|||
13
AndreyFAN
19.01.10
✎
23:08
|
(12) Стил, я не профи, поэтому не стыдно
профи промолчали, я попытался дать ответ. Вроде топикстартер удовлетворён. Если можно, дай правильный ответ. С удовольствием исправлю код на лучший в своей конфе. Спасибо. |
|||
14
NcSteel
19.01.10
✎
23:11
|
(13) Правильный код дан в СП :
РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>) РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>) Элементы коллекции: РегистрСведенийЗапись Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции. Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс (нумерация с 0) записи. Свойства: ДополнительныеСвойства (AdditionalProperties) ОбменДанными (DataExchange) Отбор (Filter) ЭтотОбъект (ThisObject) Методы: Вставить (Insert) Выбран (Selected) Выгрузить (Unload) ВыгрузитьКолонки (UnloadColumns) ВыгрузитьКолонку (UnloadColumn) Добавить (Add) Загрузить (Load) ЗагрузитьКолонку (LoadColumn) Записать (Write) Индекс (IndexOf) Итог (Total) Количество (Count) Метаданные (Metadata) Модифицированность (Modified) Очистить (Clear) Получить (Get) ПолучитьФорму (GetForm) Прочитать (Read) Сдвинуть (Move) Удалить (Delete) УстановитьАктивность (SetActive) События: ПередЗаписью (BeforeWrite) ПриЗаписи (OnWrite) Описание: Предназначен для операций с наборами записей регистра сведений в памяти. Представляет собой коллекцию записей регистра сведений. Позволяет выполнять считывание записей по определенному условию отбора из базы данных, добавлять, удалять и модифицировать записи в наборе. Также может быть выполнена запись в базе данных по определенному условию. При записи может выполняться замещение всех имеющихся в базе данных записей по данному условию на записи, содержащиеся в наборе. Максимальное число записей в наборе 999999999. XML-сериализация. Поддержка отображения в XDTO; пространство имен: {http://v8.1c.ru/8.1/data/enterprise/current-config}. Имя типа XDTO: InformationRegisterRecordSet.<Имя регистра сведений>. Пример: КурсыВалют = РегистрыСведений.КурсыВалют; НаборКурсов = КурсыВалют.СоздатьНаборЗаписей(); Доллар = Справочники.Валюты.НайтиПоНаименованию("USD"); НаборКурсов.Отбор.Валюта.Установить(Доллар); НаборКурсов.Отбор.Период.Установить(НачалоДня(ТекущаяДата())); НаборКурсов.Прочитать(); Если НаборКурсов.Количество() = 0 Тогда НовыйКурс = НаборКурсов.Добавить(); НовыйКурс.Валюта = Доллар; НовыйКурс.Период = ТекущаяДата(); ИначеЕсли НаборКурсов.Количество() = 1 Тогда НовыйКурс = НаборКурсов[0]; Иначе Предупреждение("Курс валюты задается один раз в день.", 60); Возврат; КонецЕсли; НовыйКурс.Курс = 31.44; НовыйКурс.Кратность = 1; НаборКурсов.Записать(); Сообщить("Курс " + СокрЛП(НовыйКурс.Валюта) + " на сегодня: "+ НовыйКурс.Курс + " руб."); См. также: РегистрСведенийЗапись, свойство Активность РегистрСведенийВыборка, свойство Активность РегистрСведенийМенеджер, метод СоздатьНаборЗаписей РегистрСведенийНаборЗаписей, свойство ЭтотОбъект |
|||
15
AndreyFAN
19.01.10
✎
23:20
|
Стил, в чем отличие примера от (10)?
я стартеру подсказал на примере, если регистр имеет запись одну в день, и нет других отборов (как валюта в (14)), для простоты. код одинаков. к тому же в я случайно стелепатировал в (5) что в (0) требуется записать Измерение. Код работает. |
|||
16
NcSteel
19.01.10
✎
23:22
|
Менеджер должен служить для записи новой строки , а не для перезаписи существующих .
В (10) не увидел прочитать и других признаков качественного кода |
|||
17
AndreyFAN
19.01.10
✎
23:30
|
(16) Да, спасибо. Прочитать пропустил. Значит, уже не зря тут спрашивал. Исправляю.
|
|||
18
NcSteel
19.01.10
✎
23:32
|
(17) Ты потешил мое самолюбие ))). Сегодня усну с чувством гордости.
|
|||
19
Vetal_978
19.01.10
✎
23:34
|
(14) поржал :)
в (0) сказано, что записи выбираются запросом, а в отборе набора записей работает только равенство. Так что только менеджер записи тут поможет :) |
|||
20
NcSteel
19.01.10
✎
23:35
|
Еще один . Эх .
|
|||
21
Vetal_978
19.01.10
✎
23:43
|
ага :)) одним чтением выбери несколько валют набором записей
|
|||
22
NcSteel
20.01.10
✎
00:16
|
(21) Зачем мне лишний раз блокировать таблицу ?
|
|||
23
H A D G E H O G s
20.01.10
✎
01:37
|
NcSteel, ты не прав. Вернее, не хватает исходных данных, а ты уже берешься утверждать.
Итак: (16) <<В (10) не увидел прочитать>> -Зачем читать? <<Менеджер должен служить для записи новой строки>> - Сам придумал? (14) А если Регистр имеет одно Измерение, что тогда? Чем МенеджерЗаписи() не устроит? |
|||
24
Vetal_978
20.01.10
✎
10:09
|
(23) да он не шарит! :))
|
|||
25
NcSteel
20.01.10
✎
20:56
|
Всеже СП сила:
РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>) РегистрСведенийМенеджер.<Имя регистра сведений> (InformationRegisterManager.<Имя регистра сведений>) Методы: Выбрать (Select) ВыбратьПоРегистратору (SelectByRecorder) Получить (Get) ПолучитьМакет (GetTemplate) ПолучитьПервое (GetFirst) ПолучитьПоследнее (GetLast) ПолучитьФорму (GetForm) ПолучитьФормуРедактированияЗаписи (GetRecordEditingForm) ПолучитьФормуСписка (GetListForm) СоздатьКлючЗаписи (CreateRecordKey) СоздатьМенеджерЗаписи (CreateRecordManager) СоздатьНаборЗаписей (CreateRecordSet) СрезПервых (SliceFirst) СрезПоследних (SliceLast) Описание: Предназначен для управления данными конкретного регистра сведений. Позволяет осуществлять поиск, выбирать и создавать записи регистра сведений. Возможен обмен с сервером. См. также: РегистрыСведенийМенеджер, свойство <Имя регистра |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |