|
Изменить запись регистра | ☑ | ||
---|---|---|---|---|
0
Pasha12312
31.07.13
✎
11:12
|
Здравствуйте.
Если непереодический, подчиненный регистратору регистр сведений "СостоянияОС". Как программно найти и изменить запись - Состояние? Через "СоздатьНаборЗаписей()" - не получилось . |
|||
1
Капитан О
31.07.13
✎
11:13
|
а как не получилось?
|
|||
2
ДенисЧ
31.07.13
✎
11:13
|
Отбор установи и прочитай. Потом меняй
|
|||
3
Pasha12312
31.07.13
✎
11:18
|
Делал так:
НаборЗаписей = РегистрыСведений.СостоянияОС.СоздатьНаборЗаписей(); НаборЗаписей.Отбор. (доступны только процедуры и функции (Добавить, Количество, Найти)). |
|||
4
Pasha12312
31.07.13
✎
11:19
|
... вообще я ожидал там увидеть "Регистратор" - как в книжке "Простые примеры разработки" указано)
|
|||
5
Капитан О
31.07.13
✎
11:20
|
(3) а также прочие свойства
|
|||
6
ale-sarin
31.07.13
✎
11:20
|
(3) Не жди через точку. Пиши руками.
|
|||
7
Pasha12312
31.07.13
✎
11:20
|
как найти нужную запись, подскажите?!
|
|||
8
ДенисЧ
31.07.13
✎
11:21
|
(3) НаборЗаписей.Отбор.Ос.Установить(МояОС, Истина)
|
|||
9
Капитан О
31.07.13
✎
11:21
|
(7) не найти, а отбор установить и прочитать
|
|||
10
Pasha12312
31.07.13
✎
11:24
|
(8).. Отбор.Ос ..
Ос - это что? |
|||
11
Капитан О
31.07.13
✎
11:25
|
(10) измерение
|
|||
12
ДенисЧ
31.07.13
✎
11:25
|
(10) Измерение регистра %-)
|
|||
13
Капитан О
31.07.13
✎
11:25
|
+(11) или муж осы
|
|||
14
Pasha12312
31.07.13
✎
11:25
|
(13) )))
|
|||
15
ale-sarin
31.07.13
✎
11:27
|
(10)
НаборЗаписей.Отбор.Регистратор.Установить(МояСсылка) НаборЗаписей.Прочитать(); Что-то променять НаборЗаписей.Записать(); |
|||
16
Pasha12312
31.07.13
✎
11:28
|
спасибо всем , я понял .
Просто, подумал , что если не вылетает подсказка - значит так делать - ошибка. |
|||
17
Pasha12312
01.08.13
✎
10:03
|
НаборЗаписей = РегистрыСведений.СостоянияОС.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.ОсновноеСредство.Установить(ТекОС); ошибка: {Документ.СторнированиеПередачаОС.МодульОбъекта(925)}: Поле объекта не обнаружено (ОсновноеСредство) НаборЗаписей.Отбор.ОсновноеСредство.Установить(ТекОС); |
|||
18
Pasha12312
01.08.13
✎
10:17
|
написал руками . Результат - ошибка
|
|||
19
Pasha12312
01.08.13
✎
10:27
|
.
|
|||
20
Капитан О
01.08.13
✎
10:35
|
что бы это могло быть? точно! поля нет. поэтому и не обнаружено
|
|||
21
Pasha12312
01.08.13
✎
10:42
|
(20) но там есть такое измерение.
|
|||
22
cw014
01.08.13
✎
10:46
|
(21) Что отладчик говорит про "НаборЗаписей.Отбор"
|
|||
23
Капитан О
01.08.13
✎
10:47
|
(21) а что в СП про отбор написано? ты же уже сходил и почитал?
|
|||
24
Aprobator
01.08.13
✎
10:48
|
(17) Регистр сведений СостоянияОС в конфигураторе не открыть и не посмотреть его измерения?
|
|||
25
Pasha12312
01.08.13
✎
10:49
|
(24) я ж говорил , что есть такое.
|
|||
26
Aprobator
01.08.13
✎
10:51
|
стоп, так этот регистр разве не подчинен регистартору?
|
|||
27
Pasha12312
01.08.13
✎
10:51
|
вроде понял , сейчас попробую (23)
|
|||
28
Pasha12312
01.08.13
✎
10:52
|
(23) там через Регистратор только можно. А как по измерениям по такому регистру(непереодичекий , подчиненный регистратору)
|
|||
29
Aprobator
01.08.13
✎
10:53
|
(28) запрос.
|
|||
30
Pasha12312
01.08.13
✎
10:53
|
как сделать? (23)
|
|||
31
Pasha12312
01.08.13
✎
10:53
|
(29) только так или есть еще варианты?
|
|||
32
Капитан О
01.08.13
✎
10:54
|
(30) ктрл+ф1. там много интересного
|
|||
33
Pasha12312
01.08.13
✎
10:54
|
(29) мне запись изменить нужно , а не просто прочитать.
|
|||
34
Капитан О
01.08.13
✎
10:55
|
(33) тебе понять нужно, почему ты делаешь фигню. и только потом изменить заипсь
|
|||
35
Aprobator
01.08.13
✎
10:55
|
есть варианты открыть СП и почитать про методы регистра сведений. А не сидеть тут как галчонок с открытым ртом.
|
|||
36
Ёпрст
01.08.13
✎
10:56
|
всё написано в (15)
|
|||
37
Cherokee
01.08.13
✎
11:04
|
Набор = РегистрыСведений.СостоянияОСОрганизаций.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Значение = Док; Набор.Отбор.Организация(Организация); Набор.Отбор.ОсновноеСредство(ОсновноеСредство); Набор.Прочитать(); Для Каждого Движение Из Набор Цикл Движение.Состояние = ВыбСостояние; КонецЦикла; Набор.Записать(); |
|||
38
Aprobator
01.08.13
✎
11:05
|
(37) ужас.
|
|||
39
Pasha12312
01.08.13
✎
11:06
|
(37) разве не будет ошибки в 3 и 4 стр?
|
|||
40
Aprobator
01.08.13
✎
11:07
|
будет
|
|||
41
Капитан О
01.08.13
✎
11:08
|
(39) держи, горе
Список свойств объекта зависит от свойств регистра: для регистров сведений, для которых в конфигураторе установлен режим записи "Подчинение регистратору", отбор возможен только по регистратору, для периодических регистров сведений отбор возможен по периоду и значениям измерений, для непериодических - только по значению измерений. |
|||
42
Pasha12312
01.08.13
✎
11:09
|
в СП написано , что если в регистре подчиненному регистратору - отбор , только по регистратору.
НО проблема у меня в том, что у меня не всегда будет ссылка на регистор. По этому - я хочу как-то по измерениям отбирать |
|||
43
Pasha12312
01.08.13
✎
11:09
|
(41) я читал)
(42) |
|||
44
Капитан О
01.08.13
✎
11:10
|
(42) ты хочешь странного
|
|||
45
Aprobator
01.08.13
✎
11:12
|
он хочет невозможного. Изменить запись регистра связанного с регистратором без отбора по регистратору.
|
|||
46
Aprobator
01.08.13
✎
11:13
|
и упорно не хочет сам попытаться прочесть и понять СП.
|
|||
47
Капитан О
01.08.13
✎
11:13
|
(45) но сначала всё-таки странного
|
|||
48
Aprobator
01.08.13
✎
11:14
|
посмотреть в типовых, это походу для ТС вообще - высший пилотаж.
|
|||
49
Pasha12312
01.08.13
✎
11:15
|
(48) (47) та ладно , хватит издеваться . У меня , пока , опыта мало.
что такое ТС? )) |
|||
50
Капитан О
01.08.13
✎
11:16
|
(49) топик-стартер. меняй подход к исходной задаче
|
|||
51
Aprobator
01.08.13
✎
11:17
|
(49) у тебя лени много.
|
|||
52
Serg_1960
01.08.13
✎
11:23
|
Вообще-то есть "универсальный" метод. Когда нужно, например, выбрать и изменить значения ресурса регистра. Медленный - но работает.
|
|||
53
Pasha12312
01.08.13
✎
11:27
|
(52) что за метод?
|
|||
54
Serg_1960
01.08.13
✎
11:35
|
(53) Запрос к регистру сведений с отбором по нужному значению ресурса или реквизита и возврат измерений, по которым потом можно прочитать набор (с отбором). Далее читаем записи набора, меняем и записываем набор. Сейчас примеры поищу.
|
|||
55
Pasha12312
01.08.13
✎
11:48
|
буду благодарен.
|
|||
56
h_miha
01.08.13
✎
12:09
|
сделай отбор по регистратору, прочитай набор, сделай цикл по движениям из набора и в теле цикла проверяй твоя ОС или нет и меняй если твоя
|
|||
57
Serg_1960
01.08.13
✎
12:36
|
(55) Сорри, ничего умного в голову не лезет. Наверное конец недели - устал... или ничего умного так, в принципе, не возможно сделать в конфигурации.
Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ | СостоянияОС.Регистратор |ИЗ | РегистрСведений.СостоянияОС КАК СостоянияОС |ГДЕ | СостоянияОС.ОсновноеСредство = &ОсновноеСредство | |УПОРЯДОЧИТЬ ПО | ДатаСостояния УБЫВ"; Запрос.УстановитьПараметр("ОсновноеСредство", ТекОС); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда НаборЗаписей = РегистрыСведений.СостоянияОС.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор); НаборЗаписей.Прочитать(); Для Каждого Запись Из НаборЗаписей Цикл Если Запись.ОсновноеСредство = ТекОС Тогда Собщить("Ну вот, я нашёл последнюю запись в регистре по этому основному средству... и нафига оно мне это надо? О_О"); Если Запись.Состояние = Перечисления.СостоянияОС.СнятоСУчета Тогда Сообщить("Ну и хрен с ним, что снято с учета. Всё равно менять можно только через регистратор " + Запись.Регистратор); КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; |
|||
58
Aprobator
01.08.13
✎
12:44
|
(57) я обычно пользуюсь таким способом, после прочтения регистра выгружаю его в ТЗ. Там нахожу нужные строки по отбору (Через НайтиСтроки), корректирую их и загружаю все обратно. Кстати, в запросе РАЗЛИЧНЫЕ забыл.
|
|||
59
m-serg74
01.08.13
✎
13:08
|
(58) зато (57) по сути ТСу написал нахрена менять вручную движения если РС подчинен регистратору? перепроведут и опять все на местах будет
|
|||
60
Aprobator
01.08.13
✎
13:21
|
(59) Может причина изменений в том, что раньше в модуле объекта в процедуре проведения была какая ошибка. Причем в движениях только по одному регистру. Ошибку поправили, но в старых документах ошибочные записи по регистру остались и сильно мешают жить. Перепроводить документ долго и муторно, поскольку там могут быть движения по другим регистрам и куча сопутствующих проверок. А в обработке - самое то. Ну еще перед НаборЗаписей.Записать(), неплохо было бы довесить НаборЗаписей.ОбменДанным.Загрузка = Истина;
|
|||
61
Serg_1960
01.08.13
✎
16:55
|
(58) Кстати там ошибки и другие есть - это не важно. Это ж болванка для НепонятноДляЧего. Но РАЗЛИЧНЫЕ - необязательно - ГДЕ всё равно оставит различные документы. Как-то слабо представляю, чтобы в одном документе было несколько строк по одному и тому же ОС с различным состоянием.
А с остальным сказанным тобой - согласен. |
|||
62
Aprobator
01.08.13
✎
17:01
|
(61) да я просто применяемую мной методику описал. А как где свернет записи в выборке?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |