|
Вопрос по регистрам сведений. Возможно ли изменять запись регистра сведений | ☑ | ||
---|---|---|---|---|
0
arul
07.12.11
✎
15:12
|
Такой вопрос. Один документ при проведении создает запись в регистре сведений. Может ли другой документ в этой конкретной записи модифицировать значение ресурса?
|
|||
1
Axel2009
07.12.11
✎
15:12
|
(0) может
|
|||
2
luckyluke
07.12.11
✎
15:12
|
(0) легко.
|
|||
3
AAlexandra
07.12.11
✎
15:14
|
(0) и даже "не документ" тоже может ;)
|
|||
4
Ненавижу 1С
гуру
07.12.11
✎
15:15
|
не может, событие вызванное им (например, проведение) - может
|
|||
5
Живой Ископаемый
07.12.11
✎
15:16
|
2(4) э... а например нажатие на кнопку на его на форме - может?
|
|||
6
AlexNew
07.12.11
✎
15:18
|
(5) Даже не на его форме, можно и без нажатия...
|
|||
7
Web00001
07.12.11
✎
15:20
|
(6) угу главное чтобы ссылка на документ была если регистр подчинен регистратору
|
|||
8
Живой Ископаемый
07.12.11
✎
15:22
|
2(7) ну так она есть, ее сделал первый документ
|
|||
9
AlexNew
07.12.11
✎
15:24
|
(8) А кто изменить запретил? Это не 7.
|
|||
10
Ненавижу 1С
гуру
07.12.11
✎
15:24
|
(5) может, но документ нет ))
|
|||
11
Serg_1960
07.12.11
✎
15:25
|
Угу. Главное чтобы первый документ не перепроводили заново :(
|
|||
12
Живой Ископаемый
07.12.11
✎
15:26
|
2(9) чо?
2(10) тебе никто не говорил что ты просто семантическая зануда? :) |
|||
13
Ненавижу 1С
гуру
07.12.11
✎
15:32
|
(12) не раз :)
|
|||
14
arul
08.12.11
✎
15:24
|
Так что? получается просто получить запись и вписать туда?. При перепроведении первонального документа, я думаю, нужно проверять изменения этого реквизита
|
|||
15
Axel2009
08.12.11
✎
15:30
|
(14) лучше так не делать. а создать новую запись.
|
|||
16
catena
08.12.11
✎
15:33
|
(15)Может человеку надо?
|
|||
17
arul
08.12.11
✎
21:49
|
ГТД по импорту в УПП должно изменить цену по товару в регистре сведений и добавить сумму таможенной пошлины. Цена устанавливается документом Поступления товаров и услуг
|
|||
18
arul
08.12.11
✎
21:50
|
при попытке сделать запись в регистр сведений, говорит что уже такая есть и вываливает ошибку
|
|||
19
shuhard
08.12.11
✎
21:54
|
(18) а зачем ты галку в ценах и валюте ставишь - регистрировать цены поставщика
ведь знаешь, что периодичность Рг день и ставищь - почему так |
|||
20
Axel2009
08.12.11
✎
23:37
|
(18) сделай периодичность секунда.
|
|||
21
arul
09.12.11
✎
11:36
|
Этот Регистр сведений не переодический. Добавлен был в систему не мной, и много где используется. Режим записи: Подчинение регистратору. Если я его сделаю переодическим на что это повлияет?
|
|||
22
GROOVY
09.12.11
✎
11:39
|
Изменить запись любого регистра можно. Не важно чему и как он подчинен. Программно изменить можно. Даже если он подчинен регистратору, его запись можно изменить обработкой, проведением другого документа и пр.
|
|||
23
shuhard
09.12.11
✎
11:59
|
(18) какую ошибку выдает документ,
конкретно |
|||
24
arul
09.12.11
✎
15:42
|
(18) ошибка типа: В рег сведений эта запись уже существует. Точно не скажу, так как этот код уже закомментил.
Вот такой код был. Код не мой, но мне его приходится разбирать Для Каждого ТекСтрокаТовары Из Товары Цикл НаборЗаписей=РегистрыСведений.КалькуляцияЦен.СоздатьНаборЗаписей(); ТекущаяПартия=ТекСтрокаТовары.СерияНоменклатуры; ТекущаяНоменклатура=ТекСтрокаТовары.Номенклатура; НаборЗаписей.Отбор.Регистратор.Установить(ЭтотОбъект.Ссылка); НоваяЗапись=НаборЗаписей.Добавить(); НоваяЗапись.ДокументПоставки=ТекСтрокаТовары.ДокументПартии; НоваяЗапись.Номенклатура=ТекСтрокаТовары.Номенклатура; НоваяЗапись.ХарактеристикаНоменклатуры=ТекСтрокаТовары.ХарактеристикаНоменклатуры; НоваяЗапись.Партия=ТекущаяПартия; НоваяЗапись.Количество=ТекСтрокаТовары.Количество; НоваяЗапись.ЦенаКонтракта=ТекСтрокаТовары.ДокументПартии.Товары.Найти(ТекущаяНоменклатура).Цена; НоваяЗапись.ТаможПошлина=ТекСтрокаТовары.СуммаПошлины; НоваяЗапись.ТаможОформление=ТекСтрокаТовары.СуммаТамСборРуб; НоваяЗапись.ТранспортныеУслуги=ТекСтрокаТовары.ДокументПартии.Товары.Найти(ТекущаяНоменклатура).СуммаТранспорт; НоваяЗапись.СуммаАкциза=ТекСтрокаТовары.ДокументПартии.Товары.Найти(ТекущаяНоменклатура).СуммаАкциза; НоваяЗапись.КонтрольныйЗнак=ТекСтрокаТовары.ДокументПартии.Товары.Найти(ТекущаяНоменклатура).СуммаМарки; НаборЗаписей.Записать(Ложь); КонецЦикла; |
|||
25
DrShad
09.12.11
✎
15:48
|
какой дебильный код!
|
|||
26
DrShad
09.12.11
✎
15:52
|
(24) сколько? за нормальный код?
|
|||
27
arul
09.12.11
✎
15:59
|
это уже отредактированный немного код, изначально был ещё веселей
|
|||
28
pumbaEO
09.12.11
✎
16:00
|
даже отредактированный он ...
|
|||
29
pumbaEO
09.12.11
✎
16:02
|
Сам не без греха, не люблю критиковать, но это:
=ТекСтрокаТовары.ДокументПартии.Товары.Найти(ТекущаяНоменклатура).Цена =ТекСтрокаТовары.ДокументПартии.Товары.Найти(ТекущаяНоменклатура).СуммаТранспорт; =ТекСтрокаТовары.ДокументПартии.Товары.Найти(ТекущаяНоменклатура).СуммаАкциза; Для Каждого ТекСтрокаТовары Из Товары Цикл НаборЗаписей=РегистрыСведений.КалькуляцияЦен.СоздатьНаборЗаписей(); НаборЗаписей.Записать(Ложь); просто дебильный код. |
|||
30
DrShad
09.12.11
✎
16:04
|
ТекущаяНоменклатура=ТекСтрокаТовары.Номенклатура;
... НоваяЗапись.Номенклатура=ТекСтрокаТовары.Номенклатура; а это? |
|||
31
arul
09.12.11
✎
16:08
|
человек, который писал это, просто не знаком с правилами оформления кода
|
|||
32
DrShad
09.12.11
✎
16:10
|
(31) так ты же уже переписывал код! ты чтоли знаком?
|
|||
33
pumbaEO
09.12.11
✎
16:17
|
На это смотреть без желания переписать невозможно. Переписать пару минут, именно этот пример. Конечно если весь код таким макаром сделан, то "человек, который писал это..." линейкой по пальцам.
P.s.: не удивлюсь, если в ТЧ Товары могут быть одинаковые строки. |
|||
34
AlexNew
09.12.11
✎
16:20
|
Причем тут правила оформления?
|
|||
35
DrShad
09.12.11
✎
16:24
|
(34) ну если ТС нравится такой термин, пусть
|
|||
36
arul
09.12.11
✎
16:50
|
ТекущаяПартия=Справочники.СерииНоменклатуры.НайтиПоНаименованию(ТекСтрокаТовары.СерияНоменклатуры);
ТекущаяНоменклатура=Справочники.Номенклатура.НайтиПоНаименованию(ТекСтрокаТовары.Номенклатура); ТекущийДокументПоставки=Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(ЭтотОбъект.Номер); там ещё вот такое было. Я немного сократил. |
|||
37
arul
09.12.11
✎
16:56
|
А в документе Поступление товаров и услуг вот так делается запись в рег. сведений:
Для Каждого ТекСтрокаТовары Из Товары Цикл НаборЗаписей=РегистрыСведений.КалькуляцияЦен.СоздатьНаборЗаписей(); ТекущаяНоменклатура=ТекСтрокаТовары.Номенклатура; ТекущаяПартия=ТекСтрокаТовары.СерияНоменклатуры; ТекущийДокументПоставки=Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(ЭтотОбъект.Номер); НаборЗаписей.Отбор.Регистратор.Установить(ЭтотОбъект.Ссылка); НоваяЗапись=НаборЗаписей.Добавить(); НоваяЗапись.ДокументПоставки=ЭтотОбъект.Ссылка; НоваяЗапись.Номенклатура=ТекущаяНоменклатура; НоваяЗапись.ХарактеристикаНоменклатуры=ТекСтрокаТовары.ХарактеристикаНоменклатуры; НоваяЗапись.Партия=ТекущаяПартия; НоваяЗапись.Количество=ТекСтрокаТовары.Количество; НоваяЗапись.ЦенаКонтракта=ТекСтрокаТовары.Цена; НоваяЗапись.СуммаАкциза=ТекСтрокаТовары.СуммаАкциза; НоваяЗапись.КонтрольныйЗнак=ТекСтрокаТовары.СуммаМарки; НаборЗаписей.Записать(Ложь); КонецЦикла; |
|||
38
AlexNew
09.12.11
✎
16:58
|
(37) Чем хвастаешься то?
|
|||
39
arul
09.12.11
✎
16:59
|
да я пытаюсь разобраться почему при проведении документа ГТД вываливается ошибка
|
|||
40
DrShad
09.12.11
✎
17:01
|
учиться, учиться и еще раз учиться, как завещал великий Ленин
|
|||
41
shuhard
09.12.11
✎
17:03
|
(39) какую ошибку выдает документ,
конкретно |
|||
42
arul
09.12.11
✎
19:47
|
вот такая ошибка при проведении ГТД:
"Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует!: Поступление товаров и услуг xxxxx от xx.xx.xxx 12:13:35: Товар 216(185 кг): ПТ№ 000хххх (хх.хх.хх) (Регистр сведений: Калькуляция цен; Номер строки: 2)" |
|||
43
arul
09.12.11
✎
21:55
|
(40) Спасибо за совет.
|
|||
44
arul
14.12.11
✎
09:39
|
Кто нить встречал такую ошибку?
|
|||
45
AAlexandra
14.12.11
✎
09:44
|
(44) а что тебе в ошибке не понятно? Почему возникает?
|
|||
46
arul
14.12.11
✎
10:39
|
(45) Да, почему возникает и как прстроить запись в регистр чтобы не было такой ошибки.
|
|||
47
GenV
14.12.11
✎
10:41
|
(46) Проверь дубли строк в документе.
|
|||
48
AAlexandra
14.12.11
✎
11:03
|
(46) Ты пытаешься добавить запись в РС "Калькуляция цен".
Но в этом РС у тебя уже есть запись на ту же дату, с теми же ключевыми полями. "Ключевые поля" в твоем случае - это набор измерений регистра + Период записи. Если РС непериодический - то только набор измерений регистра. Ты пишешь в (21), что РС "подчиненный регистратору", но на уникальность записей это НИКАК не влияет. Нельзя сделать 2 записи по одинаковым измерениям, даже если регистраторы разные. Это почему возникает ошибка.. А лечить можно по-разному, в зависимости от того, что ты хочешь получить. Тебе по набору измерений нужно 1 запись или много? Что вообще дальше с ними будешь делать, зачем РС нужен? |
|||
49
arul
14.12.11
✎
11:53
|
(48) Мне нужно в существующую запись внести изменение документом ГТД, т.е. внести в запись "СуммаПошлины" и "СуммаТамСборРуб" код в (24)
|
|||
50
AAlexandra
14.12.11
✎
12:26
|
Если "в существующую запись внести изменение" и "Подчинен регистратору", то алгоритм такой:
1) получить ссылку на документ-поступление, регистратор существующей записи 2) установить для НЗ отбор по регистратору, полученному в п.1 3) прочитать НЗ 4) найти в НЗ запись по интересующим измерениям и скорректировать ее 5) записать измененный НЗ (Замещать = истина) Если после всех этих "манипуляций" перепровести поступление - суммы вернутся обратно. Ты уверен, что тебе НУЖНО в существующую запись от другого регистратора внести изменения? Вообще-то это методологически неверно. Лучше либо сделать РС независимым, либо периодическим и хранить историю изменения сумм.. |
|||
51
arul
14.12.11
✎
12:38
|
(50) Да, согласен, что лучше сделать переодическим. Хотя может быть независимость будет лучше, но с его нужно будет тогда обрабатывать и при проведении и при отмене проведения
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |