|
v7: Изменить значения периодического реквизита | ☑ | ||
---|---|---|---|---|
0
Slypower
28.02.19
✎
11:57
|
В общем, задача такая. В справочнике Товары есть периодический реквизит ЦенаУч. Он может менять как документов, так и руками. Как записать значение на 04.12.2018г., чтобы ьыли заполнены все значения: номерддокумента, сам документ, номерстроки. Если руками вносить, то заполняется только дата и значение. Документ создавать на эту дату - нельзя. Как программно сделать запить?
|
|||
1
Ёпрст
28.02.19
✎
11:59
|
(0) какой документ вы там хотите увидеть, если документ создавать нельзя ?
|
|||
2
Slypower
28.02.19
✎
11:59
|
Документ прихода товара))))
|
|||
3
Slypower
28.02.19
✎
12:00
|
Он уже есть, его нужно подтянуть. Перепроводить сам документ нельзя
|
|||
4
skafandr
28.02.19
✎
12:00
|
(0)Сам то понял что написал? Какой документ и при чем тут периодический реквизит?
|
|||
5
Mikeware
28.02.19
✎
12:02
|
(3) запиши напрямую...
|
|||
6
skafandr
28.02.19
✎
12:03
|
(0) периодический реквизит ЦенаУч как ты правильно написал имеет только значение и дату с которого это значение записано. Остальные данные если ты их видишь хранятся в других реквизитах
|
|||
7
Slypower
28.02.19
✎
12:04
|
(5) вот интересно как?
СпрТовары = СоздатьОбъект("Справочник.Товары"); СпрТовары.НайтиЭлемент(ВыбТовар); СпрТовары.ТекущийЭлемент().ИспользоватьДату(ТекущаяДата()); Пер = СоздатьОбъект("Периодический"); Пер.ИспользоватьОбъект("ЦенаУч",СпрТовары); Пер.ВыбратьЗначения(); Пока Пер.ПолучитьЗначение()=1 Цикл Пер.ТекущийДокумент() = ТЗ_Форма.Документ; Пер.ТекущийДокумент().НомерДок = ТЗ_Форма.НомерДок; Пер.НомерСтроки() = ТЗ_Форма.НомСтроки;//ДанныеИзДок(Пер.ТекущийДокумент(),"НомерСтроки"); Попытка Пер.Записать(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЦикла; Так в ошибку бьет. СпрТовары = СоздатьОбъект("Справочник.Товары"); СпрТовары.НайтиЭлемент(ВыбТовар); ТЗ_Форма.ВыбратьСтроки(); Пока ТЗ_Форма.ПолучитьСтроку() = 1 Цикл Если ТЗ_Форма.НовЗнач = НетПометки Тогда Продолжить; КонецЕсли; СпрТовары.ТекущийЭлемент().ИспользоватьДату(ТЗ_Форма.ДатаЗн); //СпрТовары.ЦенаУч.Установить(ТЗ_Форма.ДатаЗн,ТЗ_Форма.Документ); //СпрТовары.ЦенаУч.Установить(ТЗ_Форма.ДатаЗн,ТЗ_Форма.НомерДок); //СпрТовары.ЦенаУч.Установить(ТЗ_Форма.ДатаЗн,ТЗ_Форма.НомСтроки); //СпрТовары.ЦенаУч.Установить(ТЗ_Форма.ДатаЗн,ТЗ_Форма.Значение); СпрТовары.УстановитьАтрибут("ЦенаУч",ТЗ_Форма.Значение); КонецЦикла; Попытка СпрТовары.Записать(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Так ничего не меняется. |
|||
8
Mikeware
28.02.19
✎
12:05
|
(7)
update _1sconst ... ну и у документа флаг поставить, что им пеиодические реквизиты справочников двнуты |
|||
9
Mikeware
28.02.19
✎
12:06
|
||||
10
trad
28.02.19
✎
12:09
|
штатными средствами:
У документа убрать "Авто удаление движений" Доработать модуль проведения, снабдив его специальной веткой алгоритма проведения И таки провести |
|||
11
Bigbro
28.02.19
✎
12:12
|
голосую за (10)
|
|||
12
Mikeware
28.02.19
✎
12:13
|
(10) (11) для одного ддокумента вообще можно руками проставить
|
|||
13
trad
28.02.19
✎
12:14
|
(12) да, я бы тоже сделал прямым вмешательством, но я в себе уверен
|
|||
14
Ёпрст
28.02.19
✎
12:23
|
(10) автоудаление тут вообще не при чем :))
|
|||
15
Ёпрст
28.02.19
✎
12:25
|
ну и да, самое простое, это update.
А так, можно и это доработать, было бы желание http://catalog.mista.ru/public/79515/ |
|||
16
trad
28.02.19
✎
12:30
|
(14) и как ты предлагаешь перепровести документ не трогая существующие движения
|
|||
17
Ёпрст
28.02.19
✎
12:35
|
(16) ну посмотри (15)
|
|||
18
Ёпрст
28.02.19
✎
12:35
|
на досуге..
|
|||
19
Ёпрст
28.02.19
✎
12:36
|
Единственное, я забил на периодику и на проводки, лень было в своё время доделывать
|
|||
20
Bigbro
28.02.19
✎
12:38
|
(15) гранату помню, пригождалась пару раз, спасибо! ))
|
|||
21
trad
28.02.19
✎
12:42
|
(17) но в (10) речь про штатный механизм
|
|||
22
Ёпрст
28.02.19
✎
12:46
|
(21) ты не поверишь, там всё штатно :)
|
|||
23
Ёпрст
28.02.19
✎
12:46
|
через провести
|
|||
24
trad
28.02.19
✎
12:50
|
(22) а перехватчик тогда накой?
|
|||
25
Ёпрст
28.02.19
✎
12:57
|
(24) Чтобы не писать код в каждом модуле проведения документа.
Код то посмотри, там всего то 1 класс добавляется и привет |
|||
26
Ёпрст
28.02.19
✎
12:57
|
мот, сгодится для чего-нить
|
|||
27
trad
28.02.19
✎
13:13
|
(25) лень
ты просто скажи в двух словах как, не трогая движения, перепровести док без 1спп и формекс |
|||
28
Ёпрст
28.02.19
✎
13:19
|
(27) провести(параметр) вестимо. Тока придется в модуле проведения обработать параметр.
в параметр передать ТЗ со всеми нужными движениями дока |
|||
29
Ёпрст
28.02.19
✎
13:21
|
Ну и твоя галка, как ты понимаешь, по-боку.
Есть галка, в коде обработки параметра не очищаем перед записью движения, есть - чистим. Всё собственна |
|||
30
trad
28.02.19
✎
13:25
|
(28) (29) это то все понятно
но ты же понимаешь разницу между "не трогать движения" и "восстановить те же движения" |
|||
31
Ёпрст
28.02.19
✎
13:29
|
(30) я понимаю, к чему ты клонишь, ты хочешь очищать только нужное и переписывать только его.
Но по-большому счету, можно и всё переписать |
|||
32
Ёпрст
28.02.19
✎
13:30
|
в любом случае, автор в (0) не осилит
|
|||
33
trad
28.02.19
✎
13:30
|
(31) нельзя. ГП сдвинется
|
|||
34
Ёпрст
28.02.19
✎
13:30
|
ну и править метаданные, врят ли будет
|
|||
35
Ёпрст
28.02.19
✎
13:31
|
(33) :) ГП ? Дык установит(куда угодно)
|
|||
36
trad
28.02.19
✎
13:31
|
(33) + пересчитаются потенциально кривые RG которые исправлять никто не просил
|
|||
37
trad
28.02.19
✎
13:32
|
(35) но зачем, когда можно ничего этого не делать
|
|||
38
Ёпрст
28.02.19
✎
13:33
|
(37) ну как зачем ? Кода меньше.
так-то update и привет |
|||
39
trad
28.02.19
✎
13:40
|
(38) меньше кода?
1. собрать все движения по регистрам и периодике в параметр вместо штатного проведения восстановить движения регистров и периодики из параметра сделать дополнительное движение по периодике 2. вместо штатного проведения сделать дополнительное движение по периодике |
|||
40
trad
28.02.19
✎
13:42
|
*поправка
2. в штатном алгоритме добавить вызов ОчиститьДвижения() вместо штатного проведения сделать дополнительное движение по периодике |
|||
41
Сияющий в темноте
28.02.19
✎
13:47
|
есть такой обьект Периодический,он позволяет как читать так и писать.
|
|||
42
Chameleon1980
28.02.19
✎
13:57
|
(41) да погоди ты
|
|||
43
trad
28.02.19
✎
14:03
|
(41) ТС нужно значение связать с документом. обьект Периодический такое не умеет
|
|||
44
Ёпрст
28.02.19
✎
14:21
|
(39) конечно меньше, я даже поделку написал, вообще не надо лезть в модуль дока:)
|
|||
45
Ёпрст
28.02.19
✎
14:22
|
Твою мысль понял, сымаем галку и чистим тока периодику, её и перезаписываем.
Но, це з\же частный случай |
|||
46
trad
28.02.19
✎
14:28
|
(45) в (10) самый что ни на есть общий и штатный способ дозаписи движений и периодики
|
|||
47
trad
28.02.19
✎
14:29
|
в древнем типовом ТиСе даже помню был применен такой прием для частичного проведения при подборе товаров
|
|||
48
Ёпрст
28.02.19
✎
14:34
|
(46) но в целом, галку можно и не снимать :)
|
|||
49
Ёпрст
28.02.19
✎
14:34
|
да расходы на перезапись движений, толкания итогов..ну и хрен с ним
|
|||
50
Ёпрст
28.02.19
✎
14:39
|
Ну и если че, в (15) галка учитывается
|
|||
51
Ёпрст
28.02.19
✎
14:39
|
;)
|
|||
52
trad
28.02.19
✎
14:51
|
(50) но не решает задачи ТС ;)
|
|||
53
Ёпрст
28.02.19
✎
15:18
|
(52) Ну, не всё коту масленница, кому надо, доделает, там не так много кода добавить
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |