Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как при проведении документа изменить реквизит.

Как при проведении документа изменить реквизит.
Я
   AlexRu2015
 
11.05.21 - 13:08
Как при проведении документа изменить реквизит? Например, надо заполнить реквизит СебестоимостьСписания. Себестоимость будет известна после формирования движений по регистру. Пытаюсь записать в процедуре ОбработкаПроведения, не записывается. Т.е. в отладчике значение меняется, но не записывается. В толстых формах вроде работало а в УФ как?
Спасибо
   Kassern
 
1 - 11.05.21 - 13:09
(0) Конфигурация какая?
   ДенисЧ
 
2 - 11.05.21 - 13:09
руки оборвать за такое.
А так - записать ещё раз надо.
   PuhUfa
 
3 - 11.05.21 - 13:10
(0) Это что ж за себестоимость такая и нафига она в этом документе в реквизите?
   dmpl
 
4 - 11.05.21 - 13:11
(0) А чем регистр сведений не подходит?
   AlexRu2015
 
5 - 11.05.21 - 13:22
Пользователь хочет видеть себестоимость. Регистр создавать не хотелось все таки конфа типовая хочется поменьше изменений
   ДенисЧ
 
6 - 11.05.21 - 13:24
(5) Если у тебя типовая - то регистр СС у тебя уже есть
   Kassern
 
7 - 11.05.21 - 13:24
(5) для этого есть валовая прибыль предприятия, либо себестоимость товаров предприятия
   Kassern
 
8 - 11.05.21 - 13:25
(5) научите юзверов пользоваться отчетами, а не изобретать велосипеды
   PR
 
9 - 11.05.21 - 13:26
(5) За такое даже не руки отрывать, просто тихо в лес вывозить и закапывать под елкой
   Lexandr
 
10 - 11.05.21 - 13:29
(8) Легко сказать). А так для любопытных я просто вывожу в документе список нужного регистра с выбранными полями, пусть глазеют цифиры напрямую, дабы сами не могут ни отчета построить - ни регистры посмотреть.
   AlexRu2015
 
11 - 11.05.21 - 13:30
(9) А чем это черевато? Что может сломаться?
   ДенисЧ
 
12 - 11.05.21 - 13:31
(11) Руки. У того, кто это сделал.
   Kassern
 
13 - 11.05.21 - 13:31
(10) лучше все таки потратить время и научить пользоваться отчетами, в крайнем случае внешней обработкой прикрутить внешний отчет к документу, который будет отображать данные в удобочитаемой форме
   Lexandr
 
14 - 11.05.21 - 13:35
(11) Будет страшное сообщение, что документ изменен и надо его записать еще раз. Такая ситуация не смущает?
   AlexRu2015
 
15 - 11.05.21 - 13:35
(13) Мне же не в одном месте выводить. Еще в журнале документов.графа должна быть.
   Kassern
 
16 - 11.05.21 - 13:36
(11) в типовой конфе есть функционал по расчету себестоимости. Есть понятие предварительного и конечного расчета. Конечный расчет происходит при закрытии месяца, тогда уже заполняется РН СебестоимостьТоваров (для продажи). То  что вы хотите, это снять с замка типовую конфу, добавить в документ реквизит, с себестоимостью. Завтра пришел новый приход товара по другой цене, вам придется перезаписывать документы, чтобы пересчитать ваш реквизит.
   Kassern
 
17 - 11.05.21 - 13:36
(16) в итоге вместо типового функционала вы хотите собрать свой велосипед с квадратными колесами
   AlexRu2015
 
18 - 11.05.21 - 13:40
(16) Это я им объяснил они готовы.
(14) Страшного сообщения нет. Уже попробовал

Очень смущает то что никто не может объяснить в чем проблема. Похоже на какое-то религиозное табу.
   hhhh
 
19 - 11.05.21 - 13:46
(18) ну ты уже давал команду Записать() в обработке проведения? Всё нормально? Основная проблема, что у тебя все обработчики ПередЗаписью и ПриЗаписи выполнятся по 2 раза.
   Lexandr
 
20 - 11.05.21 - 13:47
(18) Так сообщения нет, поскольку реквизит не меняется.
   PuhUfa
 
21 - 11.05.21 - 13:47
(18) первая проблема это в непонимании матчасти... и в данном случае даже не 1С. Т.к. вот это "Себестоимость будет известна после формирования движений по регистру" уже само по себе дичь. Мы же говорим про списание? А раз так, то себестоимость списания ты знаешь (ну или можешь узнать) в ПередЗаписью, а следовательно не надо тебе трогать ОбработкуПроведения.
   Kassern
 
22 - 11.05.21 - 13:50
(18) когда поработаете в конторе, где в день бьют по 500+ заказов и реализуете такой функционал, 1ска колом встанет. У вас есть 2 типовых регистра, откуда вы можете подтянуть себестоимость, но вы делаете свой реквизит, который заставит вас множество раз перезаписывать документ.
   PR
 
23 - 11.05.21 - 13:54
(11) Различные кости в организме могут сломаться
А если серьезно, то я даже не буду говорить, что технически это решение — абсолютно лютый шлак
Просто ответь, что ты будешь делать, когда у тебя по какой-то причине (абсолютно почхать по какой) документ покажет одни цифры, а в регистрах будут другие?
Будешь обиженно кричать, что это разные объекты в базе и они вполне могут рассинхронизироваться?
   Lexandr
 
24 - 11.05.21 - 13:55
Я всё жду имя конфигурации.
   AlexRu2015
 
25 - 11.05.21 - 13:55
(20) Реквизит меняется. Я его на форму вывел. Руками изменил и провел. Реквизит изменился, лишних сообщений нет.
(19) Обработчики не выполняются я прописал ОбменДанными.Загрузка = истина
   Масянька
 
26 - 11.05.21 - 13:56
(25) Руками себестоимость изменил?
   PR
 
27 - 11.05.21 - 13:56
(18) Сложно объяснить, в чем проблема, что у тебя в руке граната, а чеки в ней нет, если ты не знаешь, что такое граната, что такое чека и что бывает с гранатой без чеки
   AlexRu2015
 
28 - 11.05.21 - 13:57
(26) Да руками
   Масянька
 
29 - 11.05.21 - 13:59
(28) Гений!
(9) Елка, однако, загнется... А в реке, озеро, море, океане - все живое умрет.
   Гений 1С
 
30 - 11.05.21 - 13:59
(0) ггггг. вызвать Записать
 
 
   Гений 1С
 
31 - 11.05.21 - 14:00
(3) а прикинь в документе возврата от покупателя тоже себестоимость хранится в явном виде в УТ11.
   Масянька
 
32 - 11.05.21 - 14:00
Встретились 2 одиночества...
   Mikeware
 
33 - 11.05.21 - 14:02
(26) он - хозяин своей себестоимости!
   Rovan
 
34 - 11.05.21 - 14:03
(0) а если пользователь попросит хранить остатки товаров в документе тоже будите делать ?
   AlexRu2015
 
35 - 11.05.21 - 14:04
Да черт с ней с себестоимостью не очень то и хотелось. Может кто-то толково объяснить почему так делать нельзя? Без метафор и угроз членовредительства?
   Жан Пердежон
 
36 - 11.05.21 - 14:05
(5) (35) а записывать зачем?
просто на форму или куда там тебе надо выводи
   Kassern
 
37 - 11.05.21 - 14:06
(31) Потому что в возврате есть возможность ручного распределения себестоимости, поэтому и запихнули в ТЧ.
   Масянька
 
38 - 11.05.21 - 14:06
(35) Почему нельзя через двойной сплошняк?
   Kassern
 
39 - 11.05.21 - 14:10
(35) потому что у тебя уже есть все, чтобы вывести себестоимость, дополнительно хранить в каком нибудь регистре/документе/справочнике нет смысла. Есть регистр с себестоимостью рассчитанной, бери из него циферку и выводи там где надо.
   Галахад
 
40 - 11.05.21 - 14:13
(35) Да можно. Просто Данные регистра и документа скорее всего будут отличаться.
   Гений 1С
 
41 - 11.05.21 - 14:13
(34) я в номенклатуре хранил остатки, было дело
   Kassern
 
42 - 11.05.21 - 14:16
(41) ну и как оно при каждом приходе/расходе перезаписывать карточки товара?
   ДенисЧ
 
43 - 11.05.21 - 14:16
(41) Тебе можно.
   Базис
 
44 - 11.05.21 - 14:23
(35) Попробую.

Это непонимание и игнорирование самой глубинной логики 1С - что есть константы, условно постоянные, справочники, в основном дописываемые, документы, использующие справочники, регистры, заполняемые документами, и отчёты, строящиеся по регистрам.

Если ты делаешь иначе - весь объём кода конфы, насущный и будущий, не учитывает твоих доделок и часто будет причиной расхождений. Одинаково названные показатели будут иметь разные значения, а это уже прямое нарушение принципов учёта и путь к беде.
   Гений 1С
 
45 - 11.05.21 - 14:25
(42) регламентным заданием. Использовал для печати ценников.
   Гений 1С
 
46 - 11.05.21 - 14:26
(44) если нельзя, но очень хочется, то можно. а так конечно, лучше в регистр сведений пихать
   Масянька
 
47 - 11.05.21 - 14:27
(45) А для печати ценников нельзя из регистра получать?
А вообще - гениально... Да...
   PR
 
48 - 11.05.21 - 14:27
(31) Когда ты говоришь, такое ощущение, что ты бредишь
   Масянька
 
49 - 11.05.21 - 14:28
(44) Это без метафор. Хотя, если отбросить вековой опыт предков, не-фига-не-понятно.
   fisher
 
50 - 11.05.21 - 14:35
(35) > Похоже на какое-то религиозное табу.
Когда начинаешь ссать против ветра да так, что это и других зацепить может, то да - это легко превращается в табу.
1. Процесс записи документа записывает уже готовые данные. Если ты их в процессе меняешь - значит они еще не готовы и придется записывать еще раз. В итоге за нарушение концепции тебе придется заплатить неочевидной и нестандартной реализацией, которая в силу своей неочевидности легко может аукнуться при доработках. В общем случае ведь никто не ожидает и не закладывается на вариант, что документ может записываться дважды в разных режимах.
2. Ты хочешь одни и те же данные записывать в разные места. Для этого нужны веские основания. Так как в идеале нужно обеспечивать согласованность этих данных при любых раскладах. В твоем случае оснований явно недостаточно и обеспечить согласованность этих данных при любых раскладах ты тоже не сможешь. То есть это будет еще одна мина преемникам.
   Гений 1С
 
51 - 11.05.21 - 14:35
(47) можно, если СКД поменять. Но возникает трабла с обновлениями конфы. так надежно, как в калаше.
   Гений 1С
 
52 - 11.05.21 - 14:35
(50) так надо умело ссать, опыт приходит с мастерством
   Гений 1С
 
53 - 11.05.21 - 14:36
(50) давай обсудим пример с остатками для ценников.
   Гений 1С
 
54 - 11.05.21 - 14:36
хотя сейчас, конечно, я бы применил расширение, но тогда их не было, зато были подписки.
   Trimax
 
55 - 11.05.21 - 14:37
Коллеги. В глубинах России таковое сплошь и рядом. Т.н. "бизнесмен" (чаще всего пузатый мужчинка на ренжровере, в малиновом пиджаке на толстовку, и медной (реже золотой) цепью на шее) привык, что себестоимость - это цена закупки на черкизоне, плюс затраты на проезд и аренду склада. Все остальное он платит из своего кармана (чем постоянно упрекает всех сотрудников). Поэтому "бизнесмен" желает знать сколько себестоимость только что проданной шоколадки и сколько он может изъять из кассы.
   fisher
 
56 - 11.05.21 - 14:39
(53) Давай. Что такое "остатки для ценников"? Озвучь задачу.
   Kassern
 
57 - 11.05.21 - 14:40
(56) мне больше интересно, на кой остатки на ценнике
   Trimax
 
58 - 11.05.21 - 14:41
(56) (57) Для ночной смены в "пятерочке". Остатки на чкладе. Цена остатка +10% распечатать ценники.
   Lexandr
 
59 - 11.05.21 - 14:41
(55) Еще манагеры просто молятся на цифирку прибыли сразу после реализации.
   Kassern
 
60 - 11.05.21 - 14:43
(59) а толку то?) Если клиент денюжку не заплатил, то эта циферка ничего не значит)
 
 
   fisher
 
61 - 11.05.21 - 14:44
(58) И какая проблема при этом возникает? Я все еще не улавливаю. Если нужно фиксировать результат, для "разбора полетов" - ну, фиксируй.
   Гений 1С
 
62 - 11.05.21 - 14:45
(57) молодой ты еще, незрелый. зачем там, не помню, но недавно вот просили остатки в разрезе размеров. Т.е. какие размеры остались (обувь)
   Обработка
 
63 - 11.05.21 - 14:48
Все не читал. Но Осуждаю именно такой подход как в (0).
Меняй задачу. Менять реквизит надо перез записью и точка!
   Trimax
 
64 - 11.05.21 - 14:58
(61) Что касается себестоимости. Постановка задачи кривая. Это я озвучил в (55). Т.е. заказчику необходимо видеть себестоимость продукта на данный момент времени. Принципиально, соорудить это можно, но это будет "сферический конь в вакууме". Проблемы возникнут максимум через 3 месяца, когда начнут сдавать отчет по прибыли.
Что касается ценников. Задача впринципе нормальная, особенно на продуктах питания, когда необходимо продать товар с заканчивающимся сроком годности. Т.е. выбрать таковые остатки, создать цены со скидкой и распечатать ценники.
   Масянька
 
65 - 11.05.21 - 15:01
(55) Бред. Это из глубинки ответ.
   BIP1
 
66 - 11.05.21 - 15:02
(0) Зачем записывать себестоимость в документ? "Пользователь хочет видеть себестоимость." - это не ответ. Пользователь хочет видеть, ну так и выведите на форму эти данные, чтобы он их видел. Он их будет видеть. Задача будет решена.
Зачем ЗАПИСЫВАТЬ себестоимость в документ? Чем, какими соображениями, вы руководствуетесь при принятии такого технического решения?
   Новый1сник2
 
67 - 11.05.21 - 15:03
(66) + 1
   Гений 1С
 
68 - 11.05.21 - 15:05
(64) вот кстати, когда я делал в последний раз печать размеров имеющихся в наличии, я расширением добавил замену $Размеры в макете на остатки. То бишь расширения это хорошо
   SSSSS_AAAAA
 
69 - 11.05.21 - 15:06
(66) А может он умеет показывать только то, что в реквизитах?
   Kassern
 
70 - 11.05.21 - 15:06
(62) Надо быть видимо "очень" зрелым, чтобы пихать в Ценник остатки. Обычно в ценнике указана цена, наименование, упаковка, валюта, но не как не остаток. По поводу размеров обуви, какая проблема в этом? Заводится характеристика на размер и смотрятся остатки в разрезе характеристик, типовые это позволяют
   Kassern
 
71 - 11.05.21 - 15:08
(69) за 6 лет наверное можно научиться делать запросы к регистрам и выводить результат в реквизит формы.
   Mikeware
 
72 - 11.05.21 - 15:10
(70) надо перезреть, подпортиться, подгнить, провонять...
   SSSSS_AAAAA
 
73 - 11.05.21 - 15:15
(71) Это мы так думаем. А мой опыт говорит, что иногда ТАКОЕ бывает...
   BIP1
 
74 - 11.05.21 - 15:19
(69) Сегодня добавим "Себестоимость" в документ, а завтра пользователь, убедившись в том, что программист толковый, попросит вывести в документ ещё и остатки, чтобы девочкам было удобнее выписывать документы и не открывать каждый раз отчёт по остаткам:)
   Trimax
 
75 - 11.05.21 - 15:21
(74) Гы :) (с) Фиксин.
Уже лет 10 как пройденный этап у одного "ларечника".
   Kassern
 
76 - 11.05.21 - 15:26
(75) есть такие умельцы, для которых желание клиента - закон. И они начинают ломать весь типовой функционал, по каждой хотелке оператора. А потом этот зоопарк уже никто поддерживать не хочет
   Новый1сник2
 
77 - 11.05.21 - 15:28
попадался один клиент у которого в карточке номенклатуры с десяток типов цен и все разными
реквизитами. цена1, цена2 и т.д. но я с ними работать не стал
   hhhh
 
78 - 11.05.21 - 15:37
тут еще дело в том, что в 1с методичка постоянно меняется. Например, в бух 1.6 в документе требование-накладная был реквизит себестоимость. А  в бух 2.0 просто взяли и выбросили его. Пользователи на местах взвыли. Потому что все уже привыкли к этому. Вот поэтому возникла эта задача, вставить реквизит себестоимость, это не просто так, на пустом месте. Не просто же Гений это придумал.
   benj
 
79 - 11.05.21 - 15:37
Мне кажется тебе больше подойдет, добавить доп реквизит,  а потом туда данные записывать

к примеру

&НаСервере
Процедура УстановитьДополнительныйРеквизитОбъекта(ДокументОбъект, ИмяРеквизита, ЗначениеРеквизита, ТаблицаСвойств)
    
    

    ЭлПВХ_Ссылка = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя",ИмяРеквизита);
    Если ЭлПВХ_Ссылка.Пустая() Тогда
        Сообщить("Не найден доп. реквизит "+ИмяРеквизита+", значение не установлено!");
        Возврат;
    КонецЕсли;
    
    
    СтрДопРеквизиты = ДокументОбъект.ДополнительныеРеквизиты.Найти(ЭлПВХ_Ссылка, "Свойство");
    
    
    
    НоваяСтрока = ТаблицаСвойств.Добавить();
    НоваяСтрока.Свойство = ЭлПВХ_Ссылка;
    НоваяСтрока.Значение = ЗначениеРеквизита;    
КонецПроцедуры


А у себя после Записи с признаком ОбменДанными.Загрузка = Истина, только не забудь если документ самописный везде возврат при ОбменДанными.Загрузка сделать     
                ТаблицаСвойств = Новый ТаблицаЗначений;
        ТаблицаСвойств.Колонки.Добавить("Свойство");
        ТаблицаСвойств.Колонки.Добавить("Значение");
        
        УстановитьДополнительныйРеквизитОбъекта(ЭтотОбъект,"Себестоимость",Себестоимость,ТаблицаСвойств);
        
        Этотобъект.Записать();


Это примерно все, но лучше как все говорят, записывай в регистр
   Mikeware
 
80 - 11.05.21 - 15:52
(74) а потом будет вопрос "за что заплатил, а за что нет"
   Mikeware
 
81 - 11.05.21 - 15:53
(78) переходят с одних веществ на другие - вот реквизиты и плывут...


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.