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

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

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

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

к примеру

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

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


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


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