|   |   | 
| 
 | 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) Ну, не всё коту масленница, кому надо, доделает, там не так много кода добавить     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |