Имя: Пароль:
1C
1С v8
Отследить изменение реквизитов реквизита
0 prtx
 
12.05.15
21:01
Всем привет!

Уважаемые знатоки!

Ломаю голова и ни как не могу понять как лучше организовать такую вещь.

Есть документ, пусть будет "Приход", у документа есть табличная часть "Товары", в этой табличной часть много реквизитов. Но нам нужен один реквизит этой ТЧ: "Номенклатура" (тип: СправочникСсылка.Номенклатура).

Далее моделируем ситуацию: Пользователь добавил строку в тч, выбрал номенклатуру, проставил данные в других полях(количество, цена и т.п.) этой строки и потом ему стукнуло в голову что в номенклатуре что-то не то, и он нажимает кнопку открытия в ячейке с номенклатурой переходит в элемент справочника (ну и меняет там какие-то данные реквизитов) и нажимает "записать и закрыть", получается о перезаписывает этот элемент (например был телевизор цветной стал черно-белый), и вот самое интересной... Мне нужно узнать что он там поменял и в зависимости от этого пересчитать некоторые данные в этой строке.

Мои идеи:

Использовать событие табличной части ПередОкончаниемРедактирования или ПриОкончанииРедактирования, и пересчитывать нужные данные в строке ссылаясь на данные номенклатуры, не зависимо от того открыл он элемент справочник с даннной номенклатурой просто посмотреть или поменять или он вообще поменял то, что никак не влияет на вычисления, но мне кажется что это неправильно, вычисления нужно проводить тогда когда это нужно... Или при помощи метаданных проверять поменял он что-то там или нет и что и потом вычислять.
Но что-то мне подсказывает что это замудренное решение...


Подскажите пожалуйста более здравое и правильно решение, подход...\


1с 8.3. управляемые формы.
1 hhhh
 
12.05.15
21:21
самое здравое ничего не делать. Например, пользователь поменял номенклатуру, а эта номенклатура встречается в 50000 документах за полгода. Вы что всю базу будете перелопачивать.

Или например, вы работаете с документом, а в это время другой пользователь с другого компьютера изменил реквизиты номенклатуры. Как вы узнаете об этом?
2 mistеr
 
12.05.15
21:30
(0) ИМХО сценарий бредовый, не нужно его поддерживать. Нужно продумать нормальный сценарий работы, реализовать и научить пользователей.

Ну а если оставаться в рамках данного сценария, то просто дай пользователю кнопку "Пересчитать" и пусть он сам отвечает за свои действия.

P.S. А еще пользователь может залезть в справочник не из ТЧ документа, а из главного меню Операции/Справочники или еще как-то. Все это отслеживать - бред.
3 Fuas4
 
12.05.15
21:34
+(2) и назвать кнопку "Я осознаю, что поменял реквизиты номенклатуры, и согласен сидеть ждать 20 минут пока все пересчитается"
4 prtx
 
12.05.15
22:17
(1) Опишу детально ситуацию.

Номенклатура это лекарства. Как вы знаете в коробке лекарств может быть несколько пластинок таблеток. И можно продать одну пластинку из пачки, а если в пачке три пластинки тогда нам приходиться продавать 0,3333333333333333 и т.д. пачки, и на остатках будет потом висет одна сотая или одна десатая или тысячная пачки... Это плохо!(((

Поэтому решил ввести такое понятие как делитель номенклатуры, который в нашей ситуации будет равен 3(количество пластинок в пачке), таким образом мы будем использовать не десятичные дроби при движении товара а обычные. Итова на складе будет учитываться именно в пластинках то есть нас две пачки товара, а в базе храниться количество 6 (2 пачки * делитель 3). и таким образом мы побороли остатки в одну сотую товар и т.п.

иЗ ЭТОГО ОТВЕТЫ:

(1) нЕТ. Я сделал отдельный регистр сведений где при поступлении товара заноситься этот самый делитель номенклатуры в разрезе номенклатура и партия. И при продажах и всяких других манипуляциях этот реквизит номенклатуры я достаю из регистра сведений. Т.е. если пользователь изменит этот делитель то он просто напросто при последующем приходе будет заноситься новый, а все имеющиеся документы он ни как не повлеяет...

(2) кнопка как вариант, но хочется сделать более умную программу)))

Как вариант еще можно и это наверное правильно перед записью документа переберать всю т.ч. и пересчитывать сумму по каждой позиции, но хочется чтобы было все динамично и на автомате и что бы пользователь после своих изменений увидил новую сумму..

НАПРИМЕР:

Вбили в тч. номенклатуру (пусть будет цитрамон), на момент выбора номенклатуры у цитрамона был делитель 2(две пластинки в пачке), поставил цену 100 рублей, у поставил количество что ему пришло 1 пачка целая и 1 пластинка, таким образом сумма получаеться 100 рублей(за пачку) + 50 рублей(за пластинку) = 150 рублей. а потом до проведения дока пользовать вспомнил что ему пришел тотже цитрамон тока делитель уже 5(5 пластинок в пачке), и зашел и поменял делитель, вот она появляеться ошибка сумма то теперь должна быть другая не 150 рублей, а 100 рублей за пачку + (100 / 5 = 20) = 120 рублей. вот такие пироги...

(2) а хотя и правда пошли они в пень хотят увидеть обновленные суммы пусть нажимают кнопку я им все пересчитаю, а перед записью еще раз на всякий случай)))


Но тем не менее хочется динамического пересчета и обновления информации? Жду идей)))
5 prtx
 
12.05.15
22:23
(4) И поэтому я хочу отлавливать событие изменения пользователем каких либо данных номенклатуры, и потом проверять если он поменял делитель значит пересчитать сумму с учетом нового делителя, а если что-то другое поменял то пофиг...
6 pessok
 
12.05.15
22:29
мне больше интересно, что же там будет с остатками...
7 jsmith82
 
12.05.15
22:29
неверною дорогой идёте, товарищ
8 pessok
 
12.05.15
22:30
а вообще задача не стоит выеденного яйца. просто надо завести два элемента справочника (цитрамон-3, цитрамон-2)
9 prtx
 
12.05.15
22:36
(6) всмысли? вроде все нормаль при тестировании... тока вот эта ошибка всплыла, если не попорядку заполнять..

(7) прошу подсказать ваши идеи, может и правда переделать пока не поздно.

(8) да можно и так, но тогда база увеличится сильно. это с цитрамоном так можно, а если подгузники например то там только одного вида подгузников и одного размера будет штук 15.
10 prtx
 
12.05.15
22:41
(8) а их там сколько фирм, сколько видов и т.д. да и других товаров много и так борюсь с проблемой на старой программе с этим. они блин не правильно ищут товар например поискали цетрамон а он там цитрамон, так они новую позицию создают. (пример притянут за уши на самом деле не такие тупые сотрудники но бывает всякое...)
11 pessok
 
12.05.15
22:41
(9) уж про виды подгузников мне многое известно :) для этого есть механизм характеристик. А теперь представь, что при записи документа у тебя поменялись суммы. А потом, чтобы посмотреть маржу, было запущено восстановление последовательности, и понеслась
12 pessok
 
12.05.15
22:43
(10) значит у них нет хорошего механизма поиска
13 DrShad
 
12.05.15
22:51
небось и конфа самописка?
14 mdao
 
12.05.15
22:53
(5) добавить в ТЧ документа скрытый реквизит Делитель, ПриОкончанииРедактирования если ТЧ.Делитель<>Номенклатура.Делитель то такие строки пересчитать. НЕ?
15 prtx
 
12.05.15
22:55
(13) стандартный механизм. не писал ничего.
16 mistеr
 
12.05.15
22:55
(4) Так речь о ПРИХОДНЫХ документах? Что-то опять бредом попахивает. В аптеку не приходят вскрытые и неполные упаковки. Цитрамон в упаковке по 3 и по 5 блистеров - это разная номенклатура, с разной ценой и пр. Заходить в справочник и менять состав упаковки - зачем??? Хорошо хоть история есть.
Простейшее решение - завести номенклатуру "Цитрамон (блистер)" и указывать отдельной строкой в документе.

А вообще, я бы тоже посмотрел на хорошее решение для учета продажи дробных единиц товара. ("Хорошее" - предполагает, что все проданные дробные единицы в отчет Продажи за месяц войдут как целые.)
17 pessok
 
12.05.15
22:56
(14) для этого есть обработкаоповещения и не надо никаких реквизитов. Просто задумка реально не очень
(15) ну открой тайну то, что за конфа?
18 prtx
 
12.05.15
22:56
(14) точняк!)

наверное так и сделаю, вот крутилось что-то рядышком похожее...

Спасибо!
19 DrShad
 
12.05.15
22:57
(17) +1
что за конфа?
20 prtx
 
12.05.15
23:01
(16) сразу ответ на первый вопрос, сие диво впервую очередь для документа ввода начальных остатков. Да вы правы в аптеку приходит целый товар, но бываю исключения, и такие исключения чаще всего когда товар приходит по 2 форме...
21 prtx
 
12.05.15
23:02
(19) знаю - знаю. Здесь не очень любят тех кто пытаеться написать свою конфу. Но увы конфа самописная))))
22 pessok
 
12.05.15
23:05
23 pessok
 
12.05.15
23:05
всегда проигрывал с "drugstore"
24 DrShad
 
12.05.15
23:07
(21) да вообще по фигу, просто спокойней когда велосипеды не в типовых
25 pessok
 
12.05.15
23:10
+ в данном случае колеса у велосипеда квадратные. ох сколько чудных открытий тебя ждет, автор. сколько раз пользователь у тебя "случайно" перевыберет номенклатуру и сломает данные...
26 prtx
 
12.05.15
23:11
(24) на сколько я знаю в типовых 1с такого нет, и фармацевты с заведующими жалуются на это. Подобный механизм (дробные), хорошо реализован в аптечной программе Морион, вот хочется взят все хорошее и перенести в 1с.
27 prtx
 
12.05.15
23:15
(25) а как он их сломает? чет не пока не понимаю. вроде пробывали уже и "раком" и "боком" работать в программе вроде норм... ПОДСКАЖИТЕ, возможные проблемы, я потом и не тю-тю от этих открытий))
28 Drac0
 
12.05.15
23:16
(4) а если в остатках сразу два вида цитрамона: по 3 и по 4 блистера, то как пользователь будет работать? ИМХО, жесть жестяная.
29 pessok
 
12.05.15
23:16
(26) а вот люди в УТ 10 без проблем пересчитывают мешки в килограммы и ничего. Типовыми механизмами. Это называется "единицы измерения" и "коэффициент"
30 Drac0
 
12.05.15
23:17
(29) я вот все стеснялся спрашивать про это :)
31 pessok
 
12.05.15
23:18
(27) а элементарно сломает. есть документ "прошлогодний". Тогда в пачке было 3 пластины. Сейчас 5. Пользователь взял да и выбрал этот цитрамон заново. И всё, "привет".

(30) потому и спрашивали, не нетленка ли :D
32 prtx
 
12.05.15
23:24
(28) блин, короче вы меня еще больше запутали. ну это разные товары. первое мы в ДНР, у нас вообще тут законый физики и логики не такие как у вас))) на вообще нужно переделывать и типовые 1с бухгалтерия что бы вести учет в двух валютах, выручка идет и гривнах и рублях. расходы и гривнах и в рублях. и т.д.

так вот у нас образно цитрамон импортный один и тотже завод все тоже самое(и кол-во таблето одинаковое) тока в россии он в пачке одна целая пластинка а в украине 2 пластинке. как тут быть?
33 pessok
 
12.05.15
23:25
(22) + (29)
крепитесь там
34 Drac0
 
12.05.15
23:26
(32) две разные номенклатуры. Все остальное - это аккуратно и заботливо разложение грабли, по которым пользователи 100% пройдут и тебе в итоге может не хватить вазелина.
35 prtx
 
12.05.15
23:27
(29) ну да есть такое а как мне одну позицию заносить в пачках, другую в пластинках, помоему это еще геморойнее для пользователя, еще и единицу измерения выбирать. имхо. если я правильно понял...
36 pessok
 
12.05.15
23:29
(35) заведут, не развалятся. Зато потом это будет работать
37 Drac0
 
12.05.15
23:29
(35) неправильно понял. У тебя есть Цитрамон П (3 блистера) с единицами измерения Блистер (базовая) и Пачка (кратность 3). Пользователь приходует их пачками, а продает хоть пачками, хоть блистерами, хоть в перемешку.
38 pessok
 
12.05.15
23:32
+(37) и есть у тебя второй цитрамон, в котором кратность пачки = 5
39 Garykom
 
гуру
12.05.15
23:33
(4) чувак ты попал...)) сча тебе про блистеры нагрузят и про делимые и про "не делимые"

ЗЫ лекарства продают/продают партиями, если не спецсофт а обычный то учитывая что в одной аптеке может быть товар "совсем одинаковый" вплоть до серии, но отличающийся разными ценами закупки и продажи (закон макс. наценка)

кароче
1. запрет для юзверей портить ноемнклатуру
2. номенклатура = партии (новой строчке приходного дока)
3. номенклатура автоматом создается программно когда нужно, юзвери ее только выбирать и смотреть

ЗЗЫ это метод готовки типовых для фармацевтики
40 Garykom
 
гуру
12.05.15
23:34
(39)* продают/продают партиями = покупают/продают партиями
41 Garykom
 
гуру
12.05.15
23:37
Для всяких блистеров

Конкретное ЛС №15 имеет делимость либо 1/3, либо 1/5 (либо неделимость)

в некоторых прогах можно в разных мелких единицах продавать (выбираем блистер 1/3 или блистер 1/5)

в некоторых все проще и фармацевт пусть сам посчитает и скажет скоко это в дробных типа 0,33+0,33+0,34 продаем или
3 * 0,33 продаем и 0,01 списываем на убытки ))
42 prtx
 
12.05.15
23:42
(39) Да не хоть один юзверь но должен портить номенклатуру не мне же ее всю забивать, у нас блин щас база на 60000 позиций и то зараз иногда поступает товар которого там нет... ну механизм партий я сделал у меня партия это документ поступления товара.
43 Garykom
 
гуру
12.05.15
23:43
(42) слова "программное создание по конструктору" что нибудь говорят?
44 Garykom
 
гуру
12.05.15
23:44
(42) а насчет "механизм партий я сделал у меня партия это документ поступления товара" ГыГыГы

лисапедист однако, причем плохо "предметную облатсь" изучил..
45 Garykom
 
гуру
12.05.15
23:45
(44) к примеру в одном доке приходят 2 позиции одного товара плоть до серий одинаковых... но по разной цене закупа - соответственно будет разная цена продажи
46 prtx
 
12.05.15
23:46
(45) эту проблему я заметил сразу, но отложил на потом)))
47 Garykom
 
гуру
12.05.15
23:47
Кароче вот после таких и "нормальные фармацевт"ы плохо думают о "ненормальных 1С-никах"
48 prtx
 
12.05.15
23:48
(45) блин, подскажите плиз как мне установить двигло на лесапед, или хотябы в какую сторону копать...
49 Garykom
 
гуру
12.05.15
23:48
(46) взять заточенную отраслевую конфу/прогу и не страдать

пока из "не 1С" лучше Юнико ничего нету, из 1С сча даже не знаю столько "самописок"
50 Garykom
 
гуру
12.05.15
23:49
(48) см (49)
51 prtx
 
12.05.15
23:51
(49) на заточенную денег жалко(((
52 Garykom
 
гуру
12.05.15
23:52
(51) а так платформа 1С + стоимость Вашей работы бесплатно?
53 Tarlich
 
12.05.15
23:53
(автор) а вам знаком справочник ед измерения ? у него есть реквизит коэффициент?! для чего он?
54 Garykom
 
гуру
12.05.15
23:53
(51) ну скажите что Вы в Крыму ... http://uniko.ru/about2/news/index.php?news=2950
55 Garykom
 
гуру
12.05.15
23:55
(54)+ просто когда дойдете до загрузки эл.накладных от поставщиков вообще тошно станет ))

или проверки на фальсификаты...
56 prtx
 
12.05.15
23:58
(54) мы в донецке.((( стоимость моей работы бесплатно... и так буду доволен если уменьшу расходы на прогу...

платформа 1с бухгалтерия у нас стоила недавно 900 грн. впринципи не дорого. наша прога морион стоила 70 уе в месяц, но времена сейчас не те чтобы такие деньги платить(((

и вообще я в 1с самоучка(((
57 Torquader
 
12.05.15
23:58
(53) Кстати, коэффициент в единицах измерения показывает количество базовых единиц измерения в данной единице.
С ним очень неудобно работать - в случае лекарств всё приходится пересчитывать в таблетки.
А случай, когда есть упаковки по 2г и 3г не решается, так как приходится создавать единицу, в которой товар отпустить нельзя.
58 Garykom
 
гуру
13.05.15
00:01
(56) 1С 7.7 + еФарма (ссылки запрещены правилами форума)

ЗЫ не еФарма2 (хрэнь на .net framework), а просто еФарма 1.2.X на 1С 7.7
59 prtx
 
13.05.15
00:01
(57) ну да, такую еденицу и создал, КоличествоДробноОбщее назвал. при движениях товара количество пересчитываеться в нее и записываеться в ней.
60 DrShad
 
13.05.15
00:01
(59) а FEFO на когда отложил?
61 Garykom
 
гуру
13.05.15
00:02
(60) откуда в аптеке FIFO? это только если на складе и то редко, обычно выбор конкретной партии
62 DrShad
 
13.05.15
00:02
(56) ты не поверишь, но тут все у кого большая полоска самоучки
63 DrShad
 
13.05.15
00:03
(61) а где я написал про FIFO?
64 prtx
 
13.05.15
00:03
(60) (61) тем более у нас в ДНР, как-то пофигу на это фифо...
65 DrShad
 
13.05.15
00:04
(64) чукча не читатель - чукча писатель?
66 Garykom
 
гуру
13.05.15
00:04
(63) ааа это про контроль сроков годности....
67 DrShad
 
13.05.15
00:05
(66) сам догадался, аль кто подсказал?
68 Garykom
 
гуру
13.05.15
00:05
(66)+ забей им бы ли бы были ЛС в наличии, вряд ли кто за просрочку штрафанет приедет...
69 Garykom
 
гуру
13.05.15
00:05
(67) великий гугол
70 DrShad
 
13.05.15
00:06
(68) а разве только штрафы мотивируют вести учет правильно?
71 prtx
 
13.05.15
00:07
(65) ага))) и на фефо не так но за этим фармацевт следит, и сроки хранятся в отдельном регистре сведений и юзер может в отчете посмотреть что когда просрачется, выбирает период например 30 дней смотрит что в ближайшие 30 дней тютют..
72 Garykom
 
гуру
13.05.15
00:07
(70) а разве нет? ну и другие способы утечки $
73 Garykom
 
гуру
13.05.15
00:07
(71) мда...
74 DrShad
 
13.05.15
00:08
(71) в регистре сведений!?
75 prtx
 
13.05.15
00:08
(68) не за просручку могут нагоняй серьезный сделать. но ты прав лекарств вооооооооооообще голяк!!!!
76 Garykom
 
гуру
13.05.15
00:10
(75) кстати насчет голяка, оптовики с истекающими сроками (это не месяц другой, а из расчета "курса пропития" ЛС) отдают почти даром

вот насчет доставки это да, это подумать надо
77 prtx
 
13.05.15
00:11
(74) ну да... при поступлении записываются. я открыт для нового, подскажите как лучше, все учту. я новичек и еще самоучка... так что просьба большими булыжниками не забрасывать..
78 DrShad
 
13.05.15
00:12
(77) открой типовую УТ и изучай на здоровье
79 Tarlich
 
13.05.15
00:12
(71) что за измерения у такого рега?
80 prtx
 
13.05.15
00:15
(76) интересно но это скорее гармоны или витамины, а они дороги, а сейчас такое особым спросом не пользотся... да что говорить мы уже пол месяца сидим вату нигде не пожем взять, и не только мы одни... вы наверное даже не представляете какая напряженка с лс...
81 prtx
 
13.05.15
00:16
(79) измерение: номенклатура и партия, ресурс: срок годности
82 mistеr
 
13.05.15
02:09
(75) А как же гуманитарка? Или правда, что она идет прямиком на базар?
83 GreyK
 
13.05.15
02:17
(81) Сделай у партии товара свойство срок годности.
Извини но тему нужно в утиль, она сама по себе бесперспективна. Сейчас уже идет диалог о другом.
84 prtx
 
13.05.15
08:24
(83) Можно разжеть немного..

У меня при поступлении товара данные пишутся в регистры по измерениям номенклатура и партия(ссылка на документ поступления). Как мне и где добавить это свойство?
85 prtx
 
13.05.15
21:46
ОТВЕТ НА СВОЙ ЖЕ ВОПРОС!

(0) Из ситуации вышел следующим образом, решил не заниматься гемором...

Добавил в тч поле ДелительНоменклатуры, куда записываться при выборе номенклатуры делитель который записан в этом элементе справочника Номенклатура.

И все дальнейшие вычисления произвожу уже на основании занчения ДелительНоменклатуры которое в тч. если пользователя не устраеват делитель то он меняет его в тч, и при изменении я все пересчитываю... если пользователь изменит делитель в справочнике, то это новое значе просто будет использоваться по умолчанию в последующих приходных документах... вот.
86 Garykom
 
гуру
13.05.15
21:48
(85) молодец...еще пара лет и напишешь аналог отраслевого лисапеда...
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.