|
Как вызвать режим Диалога на Сервере Ø (Kassern 07.12.2022 12:02) |
☑ | ||
---|---|---|---|---|
0
BenDiget
04.12.22
✎
09:50
|
Привет!
Ребят, в модуле формы документа Перед проведением проверяю остатки, если остатков нет, хочу вызвать режим диалога, с вопросом уверен ли пользователь, что ему нужно провести. Но с серверной процедуру клиентскую вызвать не позволяет. Как быть? |
|||
1
Новый1сник2
04.12.22
✎
09:55
|
если остатков нет, то и проводить не нужно
|
|||
2
vde69
04.12.22
✎
10:08
|
процедура ПередЗаписьюНаКлиенте()
мРез = ПроверитьИзаблокироватьОстаткиНаСервете() Если НЕ мРез тогда Если НЕ ЗадатьВопросДебилуНаКлиенте() тогда отказ = Истина Возврат конецесли конецесли ПодключитьОбработчикОжиданияСнятияБлокировки() КонецПроцедуры |
|||
3
Garykom
04.12.22
✎
10:08
|
(0) Глобальное непонимание как работает клиент-сервер
|
|||
4
vde69
04.12.22
✎
10:08
|
(1) ты это в рознице скажи, сразу пойдешь искать новое месть работы...
|
|||
5
Garykom
04.12.22
✎
10:09
|
(2) Что будет если между блокировкой и ответом клиент упадет?
Остатки останутся заблокированными? |
|||
6
Garykom
04.12.22
✎
10:10
|
(4) Зависит какая розница и есть ли маркировка
|
|||
7
vde69
04.12.22
✎
10:10
|
(5) блокировка снимается автоматом при закрытии формы (правдо не совсем сразу, там может пройти пару минут)
|
|||
8
Garykom
04.12.22
✎
10:12
|
(7) Упадет, а не закроется ))
|
|||
9
hockeyist
04.12.22
✎
10:17
|
(0) Своя кнопка "провести"
|
|||
10
Новый1сник2
04.12.22
✎
10:32
|
(6) +1
|
|||
11
vde69
04.12.22
✎
10:49
|
(8) разницы нет, сборщик мусора при отсутствии дискриптора убивает все переменные и блокировки, в самом плохом варианте блокировка будет жить до перезагрузки соответствующего рхоста
|
|||
12
vde69
04.12.22
✎
10:50
|
(9) а ты покажи реализацию этой своей кнопки :) и получится (2)
|
|||
13
Garykom
04.12.22
✎
11:02
|
(12) Если честно то реализация в (2) так себе
Надо асинхронно делать и в фоновом Т.е. запускается фоновое задание которое пытается провести, на клиенте через ОбработчикОжидания проверяет результат задания Если все провелось то прекрасно Если не провелось то выводим вопрос и в зависимости от ответа или останов или заново запускаем фоновое проведения уже с параметром пофиг на остатки И ждем ответа |
|||
14
p-soft
04.12.22
✎
11:28
|
(4) эт тема для дебила, который пересорт не может быстро устранить. базу блочить в рознице по ходовому товару атас вариант
|
|||
16
Новый1сник2
04.12.22
✎
12:19
|
(15) ТС не сказал что у него розница, да в рознице есть с этим проблемы.
|
|||
17
BenDiget
04.12.22
✎
12:39
|
(2) Большое спасибо! Самый дельный ответ в моей теме) (4) Ребят, вопрос не в методологии, почему я там с остатками хочу дать провести, кому какая разница. Я вообще это для лаконичности написал. Вопрос как реализовать технически вызов диалога вопроса с сервера. И если нет варианта вызвать с сервера, то альтернатива какая?
Если интересно, что именно я проверяю, то я дорабатываю упаковочные листы, и мне надо проверить совпадает ли количество номенклатуры в таб части с таб частью документа основания, потому что пользователь может нечаянно удалить строку, замешкаться и не заметить. Надо ему напомнить, что количество отлично, и хочет ли он провести документ в таком виде. А вы тут начали умничать |
|||
18
BenDiget
04.12.22
✎
12:40
|
(3) Согласен полностью, уже книгу скачал по упр формам, пока нет времени прочесть
|
|||
19
Garykom
04.12.22
✎
12:41
|
(17) Идеология и методология 1С (и всех прочих клиент-серверных технологий кстати) что с сервера не надо вызывать клиента
Можно писать куда то (в хранилище по адресу) а на клиенте проверять периодически что там сервер записал |
|||
20
vde69
04.12.22
✎
12:42
|
(14) в большой рознице вообще не нужно остатки проверять....
(13) у мня недавно в Ашан случай был: понабрал полную тележку, все пропикали, картой оплатил, платеж прошел .... и тут на кассе "облом", вероятно маркировка какая-то не прошла.... меня со всей тележкой завернули заново все бить и пришлось второй раз стоять и все перекладывать и второй раз платить (правда возврат по первому платежу пришел быстро). по этому все варианты "а давайте попробуем" это так себе варианты.... лучше уж вообще не контролировать остатки чем контролировать с "отказом" |
|||
21
p-soft
04.12.22
✎
13:17
|
(17) "умничать", да? мы тут делимся мнением, причем делаем это безвозмездно, а господин носом воротит? ну ок
|
|||
23
Мимохожий Однако
04.12.22
✎
21:13
|
(17) Хамишь, парниша
|
|||
24
FirstLine Support
04.12.22
✎
22:11
|
я бы тупо сделал галку на форме "Пофик на остатки всё равно проводи!" и не надо никаких заморочек с асинхронными вызовами фоновых заданий. Плюс такого подхода в том, что еще и останется аудиторский след
|
|||
25
Asmody
модератор
04.12.22
✎
22:16
|
(22) полегше на поворотах, полегше.
это Миста, здесь вам не тут |
|||
26
PR
04.12.22
✎
22:27
|
(17) Это не дельный ответ, а говно
Дело в том, что, не поверишь, документ можно провести и не из формы Поэтому единственно правильным вариантом будет тупо всегда не проводить документ, сообщая о причине А если ты хочешь опциональное отключение проверки, то добавляешь булевский реквизит документа "НеПроверятьЧтоТоТамЧтоТыТамПроверяешь" и пользователь после того, как у него не получилось провести документ, ставит эту галочку и проводит документ с этой галочкой |
|||
27
ДедМорроз
04.12.22
✎
22:29
|
Чтобы было понятно,давайте отвлечемся от 1с и просто посмотрим на серверный вызов.
Мы куда-то обращаемся и млжем только назад получить результат - он будет или OK или сообщение об ошибке. Если в сообщении установлен признак,то мы выводим предупреждение или вопрос на экран,а потом делаем тот же вызов с параметром,в который мы поместили результат вопроса. |
|||
28
PR
04.12.22
✎
22:30
|
+(26) Что в (24) и предложили
|
|||
29
PR
04.12.22
✎
22:31
|
(27) Такой вариант вообще никем не рассматривается, кроме ТС
Речь о том, насколько корректно делать проверку на клиенте перед проведением |
|||
30
vde69
04.12.22
✎
22:39
|
(29) на самом деле это старый старый вопрос из собеседований (был актуальный еще в 7.7), суть в том, что бы не повесить на вопросе открытую транзакцию и тем самым не заблокировать все.
то есть понимать интерактивные вызовы когда уже началась транзакция категорически нельзя, и (2) это учитывает. Ну а варианты с фоновым проведением (или частичным фоновым проведением) они имеют право на жизнь, но они довольно сложные для системы в целом (там нюансов не просто дофига а прямо дофига и еще гора сверху) и если человек никогда с этим не сталкивался лучше ему этого не советовать, пусть сначала на типовых это прощупает... |
|||
31
PR
04.12.22
✎
22:46
|
(30) Я помню про этот "старый старый вопрос из собеседований"
Я не про фоновое проведение говорю, а про программное проведение или проведение из той же формы списка |
|||
32
PR
04.12.22
✎
23:15
|
+(31) За заблокированные в (2) остатки до тех пор, пока какой-то имбецил не нажмет ответ, вернувшись с обеда, программисту обычно выдавали пистолет с одним патроном и оставляли его одного в комнате
|
|||
33
ДедМорроз
05.12.22
✎
18:23
|
(29) это не на клиенте.
Это алгоритм взаимодействия клиента и сервера через одну точку входа и отгбражение запросов на клиенте. |
|||
34
PR
05.12.22
✎
18:27
|
(33) Что не на клиенте?
ПередЗаписьюНаКлиенте не на клиенте? |
|||
35
АнализДанных
naïve
06.12.22
✎
10:52
|
(17) У тебя возникнут проблемы, если ты хочешь поменять номенклатуру\количество в уже проведенном документе. Например, ты провел документ с кол-вом 5, потом изменил количество на 1 и задаешь пользователю вопрос. В этот момент у тебя на регистре уже есть старые проводки документа, где 5 штук списано. Как вариант делать в транзакции отмену проведения, получение остатков (с учетом блокировок, как в (2)), потом отменять тразакцию и возвращать пользователю результат проверки.
|
|||
36
lodger
06.12.22
✎
11:13
|
голосую за адекватный сценарий - возвращать штатный отказ при отрицательных остатках.
если на форме после записи получен отказ, разбираем причину, и вот тут предлагаем юзеру варианты - "бросить попытки, попытаться как есть, провести без контроля остатка". в третьем варианте пихаем в проведение флаг "игнорировать контроль остатков", записываем событие в ЖР жирным шрифтом, формируем и отправляем письмо руководителю сотрудника о подозрительном поведении и предательстве Родины. |
|||
37
Kassern
06.12.22
✎
11:25
|
(0) Все же просто. Человек же на клиенте щелкает на кнопочку провести и наверное есть типовые процедуры/функции формы связанные с проведением. Вот там с клиента и запускайте свою серверную процедуру/функцию проверки остатков, возвращайте на клиент ответ. Если есть отрицательные остатки, то создаете вопрос, в оповещении продолжаете, либо отменяете проведение.
|
|||
38
Kassern
06.12.22
✎
11:26
|
Если же нужно делать проверку при проведении на программном уровне, без использования формы, то и вопрос нафиг не нужен тогда. Функцию проверки остатков можете сделать экспортной, или воспользоваться типовой.
|
|||
39
Ryzeman
06.12.22
✎
11:31
|
Автору уже писали что никак?
Уходите уже от семёрочной логики если хотите расти) Диалог - на клиенте, действия с базой данных - на сервере. Работа с формой желательно - на клиенте, серверный вызовы - желательно без контекста. Простые правила и будет вам счастье, сразу придёт понимание где что когда и зачем вызывать. Без формы никакого диалога не будет. Обрабатывай соответствующее событие на форме\формах и задавай диалоги там. |
|||
40
Kassern
06.12.22
✎
11:34
|
(39) нет у него семерочной логики (Стаж: 28 дней) Просто ТС не понимает как устроено клиент-серверное взаимодействие на платформе.
|
|||
41
sitex
naïve
06.12.22
✎
11:43
|
(37) И ? Если есть отрицательные остатки , для чего выводить Диалог ? Нужно при отриц остатках вывести ПоказатьОповещениеПользователя ссылкой на отчет (с параметрами) - чтоб искал свои косяки в остатках.
|
|||
42
Kassern
06.12.22
✎
11:46
|
(41) Это уже другой вопрос. Вы же не знаете специфику бизнес-процессов компании, мы принимаем за аксиому, что кому-то в их компании это нужно. Тут вопрос был, как с сервера задать вопрос, на что был получен развернутый ответ в (37) (39)
|
|||
43
sitex
naïve
06.12.22
✎
11:48
|
(42) Согласен .Специфично задавать вопросы при отрицательных остатках проводить или нет ))).
|
|||
44
Kassern
06.12.22
✎
11:50
|
(43) еще специфичнее, пытаться сделать это на сервере)
|
|||
45
Ryzeman
06.12.22
✎
11:50
|
(41) (43) Вообще есть ситуации когда можно и нужно разрешать отрицательные остатки. Пример - любая розница. Надо быть совсем дураком что бы допускать ситуацию "извините, мы эту хрень Вам не продадим, потому что 1с не позволяет!" :) Ну это так, в рамках оффтопа к обсуждаемой проблеме
|
|||
46
sitex
naïve
06.12.22
✎
13:54
|
(45) Да да . Ларьки . А потом ноуют у нас отрицательные , помогите спасите , обокрали
|
|||
47
Ryzeman
06.12.22
✎
13:58
|
(46) Нифига, ни разу не ларьки, как наоборот, крупняк. Лучше разобраться потом откуда взялся пересорт, чем показаться перед клиентом ничтожеством и некомпетентом отказав ему в покупке того, что у тебя фактически есть в достойном качестве.
|
|||
48
PLUT
06.12.22
✎
14:04
|
(46) наказывать за недостачи, премировать за излишки :)
|
|||
49
BenDiget
06.12.22
✎
17:31
|
Ого, сколько я всего пропустил...
Пообщаться с пользователем не так просто оказалось) ДиалогВопрос работает с ошибкой, Необходимо вызывать "Показать вопрос", а он отнюдь не простой) Но решение найдено, : Если ЗначениеЗаполнено(Объект._ДокументОснования) И ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда //Проверим ВыполнитьПроверкуТЧПоДокументуОснования(Условие!); Если Условие! Тогда Сообщение = Новый СообщениеПользователю(); //Чтобы отказать в проведении диалогом вопросом, есть такая конструкция: Сначала спрашиваем и отказываем в проведении, а после ответа пользователя, проводим документ еще раз Если НЕ ПараметрыЗаписи.Свойство("ОтказатьВПроведении") Тогда Оповещение = Новый ОписаниеОповещения("ПередЗаписьюЗавершение", ЭтотОбъект); ПоказатьВопрос(Оповещение, СтруктураОшибок.ТекстОшибки + "Провести документ?", РежимДиалогаВопрос.ДаНет, 0, КодВозвратаДиалога.Да, "Сверка с документом основания"); Отказ = Истина; // завершаем работу процедуры в самом ее зачатке Иначе Отказ = ПараметрыЗаписи.ОтказатьВПроведении; КонецЕсли; Иначе Сообщение.Текст = СтруктураОшибок.ТекстОшибки; Сообщение.Сообщить(); Отказ = СтруктураОшибок.Отказ; КонецЕсли; КонецЕсли; КонецЕсли; |
|||
50
BenDiget
06.12.22
✎
17:32
|
А вот вызванная процедура оповещения:
Процедура ПередЗаписьюЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт //Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтотОбъект); //ПоказатьВопрос(Оповещение, СтруктураОшибок.ТекстОшибки, РежимДиалогаВопрос.ДаНет, 0, КодВозвратаДиалога.Да, "Сверка с документом основания"); ПараметрыЗаписи = Новый Структура; Отказ = ?(РезультатВопроса = КодВозвратаДиалога.Нет, Истина, Ложь); ПараметрыЗаписи.Вставить("ОтказатьВПроведении", Отказ); Записать(ПараметрыЗаписи); КонецПроцедуры |
|||
51
BenDiget
06.12.22
✎
17:34
|
Таки образом, сначала мы заранее отказываем в проведении (в процедуре ПередЗаписью - на клиенте), а потом вызываем вопрос. В зависимости от ответа, заполняем значение параметра записи. И Вызываем новую Запись документа с установленным параметром. При повторной записи, снова оппадаем в процедуру ПередЗаписью - там проверяем параметр записи, и решаем отказать или продолжить
|
|||
52
BenDiget
06.12.22
✎
17:36
|
(49) Многовато я вставил, вот суть:
Если НЕ ПараметрыЗаписи.Свойство("ОтказатьВПроведении") Тогда Оповещение = Новый ОписаниеОповещения("ПередЗаписьюЗавершение", ЭтотОбъект); ПоказатьВопрос(Оповещение, СтруктураОшибок.ТекстОшибки + "Провести документ?", РежимДиалогаВопрос.ДаНет, 0, КодВозвратаДиалога.Да, "Сверка с документом основания"); Отказ = Истина;// завершаем работу процедуры в самом ее зачатке Иначе Отказ = ПараметрыЗаписи.ОтказатьВПроведении; КонецЕсли; |
|||
53
BenDiget
06.12.22
✎
17:36
|
(52)
Процедура ПередЗаписьюЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт //Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтотОбъект); //ПоказатьВопрос(Оповещение, СтруктураОшибок.ТекстОшибки, РежимДиалогаВопрос.ДаНет, 0, КодВозвратаДиалога.Да, "Сверка с документом основания"); ПараметрыЗаписи = Новый Структура; Отказ = ?(РезультатВопроса = КодВозвратаДиалога.Нет, Истина, Ложь); ПараметрыЗаписи.Вставить("ОтказатьВПроведении", Отказ); Записать(ПараметрыЗаписи); КонецПроцедуры |
|||
54
Kassern
06.12.22
✎
17:38
|
(49) Зачем так сложно?
Можно же было проще: Процедура ПриЗаписиНаКлиенте() Если ОтсутствуютТоварыВНаличии() Тогда Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтотОбъект); ПоказатьВопрос(Оповещение, "Отсутствуют товары на складе, продолжить проведение?", РежимДиалогаВопрос.ДаНет); Иначе ПродолжитьПроведение(); КонецЕсли КонецПроцедуры Процедура ПослеЗакрытияВопроса(РезультатВопроса, ДополнительныеПараметры) Экспорт Если РезультатВопроса = КодВозвратаДиалога.Да Тогда ПродолжитьПроведение(); КонецЕсли; КонецПроцедуры |
|||
55
PR
06.12.22
✎
19:08
|
Мне вот интересно, нахрена некоторые что-то спрашивают на Мисте, если потом из всех ответов выбирают самое дебильное и делают самое трешовое
|
|||
56
Ryzeman
06.12.22
✎
19:11
|
(55) Ты слишком требователен к людям. Новичок до конца не понимает как сформулировать задачу, как работает платформа и пытается сделать хоть как то как работает, а не как правильно. Мы же не можем подсказать как правильно, потому что ничерта не понятно что ему в конечном итоге надо) Пусть учится, когда нибудь поймёт и может быть даже переделает как надо. Не все начинают с франчей где есть наставники и хорошие курсы.
|
|||
57
ДедМорроз
06.12.22
✎
21:33
|
Чтобы было понятно,можно объяснить человеческим языком.
Представим,мы сидим за столом в кафе и делаем заказ официанту. Мы что-то выбрали - официант это все записал на бумажку и отбыл на кухню (серверный вызов). Там он пересказывает заказ поварам,и последние начинают его готовить. Если чего-то нет,то официант возвращается за столик,чтобы мы внесли коррективы. При этом,заранее просить официанта - узнать наличие блюд - бессмысленно,так как пока мы думаем,посетители с соседнего стола могут заказать то,что было,и его опять нет. Кроме того, повара напрямую ничего нам сказать не могут. Если мы хотим что-то узнать о процессе,то мы опять отправляем официанта узнать - и только когда он вернется,у нас будет информация. |
|||
58
FirstLine Support
06.12.22
✎
21:51
|
(57) Спецолимпиада между соседним столиком и скаканием официанта туда-сюда может продолжаться бесконечно. Тогда уж нужно ставить поваров на управляемую блокировку
|
|||
59
PR
06.12.22
✎
21:59
|
(56) Да все проще на самом деле
Кто-то выбирает путь говнокодера, кто-то профессионала И этот вектор определяет все остальное Именно поэтому некоторые новички не выбирают говенные решения, потому что они может и не понимают клиент-серверной архитектуры и не способны написать правильный код, но они способны прислушаться и прислушиваются к советам более опытных коллег А другим хоть на пальцах объясни, что это лютое дерьмище и почему, они один хрен будут лапками своими тараканьими махать "Сойдёёёт" и генерить лютое позорище |
|||
60
PR
06.12.22
✎
22:01
|
+(59) Радует, что такие говноеды редко прыгают выше сотки
Не радует, что говноедов таких как говна за баней, профессионалов хрен найдешь, даже за деньги |
|||
61
Ryzeman
06.12.22
✎
22:05
|
(59) Мне всегда казалось, что перфекционизм постепенно уходит с профессионализмом. Это не из личного опыта, я сам пока "расту" и стараюсь развиваться. Но по тем же друзьям из большого ИТ и что они рассказывают - часто кривое легаси не трогают, часто прикостыливают какую нибудь хрень лишь бы не поломать работающее, часто решают задачи за счёт производительности, но задача выполнена. Тут конечно море частных случаев и не везде так конечно...
Опять же наверняка слышал поговорку "лучшее - враг хорошего"?) Но в таких случаях ты не учитываешь что стажеры в принципе не способны понять к кому прислушиваться и найти лучшее решение. Вон по соседней ветке с запросами, казалось бы вопрос и выеденного яйца не стоит, особенно в конкретном случае, а там дебаты на 40 сообщений) |
|||
62
FirstLine Support
06.12.22
✎
22:13
|
— Всё настолько глупо и непрофессионально, что работать практически совершенно невозможно. Невозможно понять логику непрофессионала.
— А может, он хитрый профессионал? — Хитрый профессионал не поехал бы в приют. (пауза) Хитрый профессионал не поехал бы в приют, чёрт побери!!! |
|||
63
PR
06.12.22
✎
22:15
|
(61) Перфекционизм в своей крайности — это плохо
Ужасно, если программист 10 лет будет оттачивать свою первую и единственную обработку группового перепроведения документов Но проблема в том, что говнокод — это другая крайность Когда зачастую созданное "программистом" настолько непрофессионально, медленно, неэффективно, ненадежно, криво, убого, неправильно, что либо в лучшем случае дает мизерную эффективность, либо в худшем случае прямо сейчас требует или через непродолжительное время потребует выполнения задачи заново, чаще всего с нуля Лебедев неплохо про это сказал https://blog.tema.ru/C0QpwyWd_32 |
|||
64
Ryzeman
06.12.22
✎
22:18
|
(63) Ну, я целиком согласен. Просто не надо ожидать, что котёнок, который делает первые шаги по советам кучи людей на форуме сделает идеальный первый прыжок)
|
|||
65
FirstLine Support
06.12.22
✎
22:26
|
(64) когда я учился в ПТУ, там был, блин, мастер. Он и стукал колотушкой по голове, чтобы все далали правильно
|
|||
66
Ryzeman
06.12.22
✎
22:27
|
(65) Во некоторых франчах сейчас так же практикуют))) Да, PR?
|
|||
67
PR
06.12.22
✎
22:30
|
(64) Я и не жду этого
Я жду, что между кучей говна и более менее приличным кодом котенок выберет второе |
|||
68
PR
06.12.22
✎
22:31
|
(66) Не знаю, в нашем все удаленно работают
|
|||
69
FirstLine Support
06.12.22
✎
22:35
|
(67) не выберет. У него нет интуиции. А интуиция - производная опыта
|
|||
70
PR
06.12.22
✎
22:37
|
(69) Стремление к говнокоду или профессионализму — это врожденное
А что говнокод, а что хорошее решение, рассказали в ветке |
|||
71
ptiz
06.12.22
✎
23:04
|
Тут предлагают галочку на форме - тоже тот ещё костыль. Юзеру начхать на причину вопроса, он будет всегда эту галочку ставить и не будет разбираться в сути проблемы. У юзера не должно быть выбора, т к. любой выбор он всегда сделает в сторону "продать как-нибудь и наплевать на 1с", и будет по-своему прав. Нужно нормально бизнес-процесс выстроить, без вопросов в стиле: "А вы точно хотите продать или получить проблемы с покупателем?".
|
|||
72
FirstLine Support
06.12.22
✎
23:06
|
(71) не будет юзер всегда галочку ставить. Ему лень будет её ставить, если документ и без неё провелся
|
|||
73
PR
06.12.22
✎
23:07
|
(71) Согласен
Просто не проводить документ Хочешь провести без контроля — к админу или главбуху |
|||
74
PR
06.12.22
✎
23:08
|
(72) Особенно, если за эту галочку потом будут иметь в мозг или в кошелек
|
|||
75
Ryzeman
06.12.22
✎
23:10
|
(71) Меня ещё с первой работы на семёрке "забавляли" диалоги с пользователями) Там директор на них настаивал. Буквально менеджер продаёт товар и ему вопросов и предупреждений 5: не забудьте распечатать чек! Поставить автоматические скидки? Предложить сопутствующие товары? и всё в таком духе))) Представляю как манагеры страдали)
А я ещё эту хрень автоматизировал на семёрке для "быстрых продаж". Везде как дурак программно код ответа подставлял по условию) |
|||
76
BenDiget
07.12.22
✎
10:55
|
(54) Ну вот, тыж не подсказал вовремя! )) Спасибо. Записал себе
|
|||
77
BenDiget
07.12.22
✎
11:01
|
(55) А что вы посоветовали, товарищ? Где конкретный код? Или только языком лабать?
|
|||
78
BenDiget
07.12.22
✎
11:07
|
(25) Интересно, что ты удалил мое сообщение, но посмотри сколько говна из людей льется, ты это оставил. 90% этих выебо*щиков пыжатся и показывают свою крутизну друг другу. Особенно этот: (60) PR. А по делу ответили лишь единицы.
|
|||
79
PR
07.12.22
✎
11:10
|
(77) Я предложил в (26), но по ходу ты даже поиском пользоваться не умеешь, так что не в коня корм
|
|||
80
Kassern
07.12.22
✎
11:17
|
(76) Как раз вовремя и подсказал в (37). В (54) я на примере это показал
|
|||
81
PR
07.12.22
✎
11:21
|
(80) За (54) в приличном обществе могут и морду набить и с волчьим билетом уволить
Я за похожее видел увольнение в 30 секунд |
|||
82
Kassern
07.12.22
✎
11:24
|
(81) Вы в курсе за контекст задачи, за бизнес процессы компании, проводили аудит может там? Если нет, то с чего вы решили, что ваш субъективный опыт натягивается на текущую задачу? Я ответил на вопрос автора по поводу реализации ПоказатьВопрос, как его использовать. А уж использовать этот подход, или какой-то другой, пускай решает сам автор в разрезе текущих бизнес-процессов.
Предложите свой вариант реализации ПоказатьВопрос. |
|||
83
Kassern
07.12.22
✎
11:27
|
У себя в конторе и на своих проектах я бы такое реализовывать не стал, все должно быть автоматизировано без 100500 вопросов. Если товара нет, то нужно его отправить на обеспечение, отдел закупки уже работает по этому списку и т.д. Если это розница, то кассир в любом случае должен пробить товар, без 100500 вопросов.
Что там у ТС я хз, заранее написал как лучше сделать и описал как работает ПоказатьВопрос. |
|||
84
Ryzeman
07.12.22
✎
11:36
|
(81) Обосновывать свою позицию, конечно же, не обязательно)
Я, например, вообще яростный противник диалогов, если если это не вопрос жизни и смерти. Потому что пользователи один хрен их не читают, а сталкиваясь пару раз нажимают на автомате даже не задумываясь. Но если в рамках ТЗ в рамках бизнес-процесса в конторе ТС это нормально - то почему бы и нет?.. Сомневаюсь, что ТС может и должен решать что не надо так делать. Напомнило как я показал на одном собеседовании свою обработку, которая с одного ресурса бесплатно тащит порции по 100 запросов в день нужных данных как образец кода. На что мне заявили что это говнокод, потому что кто делает такую муда**ую архитектуру - ограничивать по 100 запросов, что за бред. Сцуко, это задача такая. Ну надо конторе получать эти данные и не хочет она платить. Оценивай реализацию задачи, а не постановку её) В этом плане я целиком на стороне Kassern :) |
|||
85
FirstLine Support
07.12.22
✎
11:43
|
На мой взгляд в этом и есть коренное отличие одинэсника от фигня-кодера, что однинэсник может и должен влиять не только на реализацию, но и на постановку
|
|||
86
Kassern
07.12.22
✎
11:44
|
(85) А так же иметь в голове несколько вариантов реализации задачи и предложить самый подходящий.
|
|||
87
PR
07.12.22
✎
11:45
|
(82) Еще раз, есть две непреложные истины, независящие от бизнес-процессов компании
В транзакции любые вопросы пользователю неприемлемы Проводить документ можно не только из формы документа, поэтому всякие вопросы пользователю при проведении из формы документа имеет смысл делать только в том случае, когда люди это понимают и согласны с тем, что это будет работать только в форме документа |
|||
88
PR
07.12.22
✎
11:46
|
(84) Обоснование уже было раньше, в (87) еще раз, для тех, кому сложно прочитать ветку с самого начала
|
|||
89
BenDiget
07.12.22
✎
11:46
|
Круто, мой ник подсвечен золотым теперь!
(83) Все верно написал, мой вопрос был не методологическим, а технический (79) Пишешь, что поиском пользоваться не умею, но я прочел твое решение, оно не подходит, потому что в теме - я описал про остатки лаконично. На самом деле я сверял количество по ТМЦ в документе Упаковочный лист, с количеством документа основания. Причем "ПоказатьВопрос" вызывается, только в том случае, если в Упаковочном листе Количества меньше, чем в документе Основания. Согласись, в этом случае можно и провести док, предварительно предупредив пользователя об этом. Но весь этот багаж, я не хотел вешать на плечи форумчан, потому что меня интересовало совсем другое: "Как вызвать диалог с пользователем" а про остатки написал для лаконичности, чтобы не расписывать все свои условия по документу |
|||
90
PR
07.12.22
✎
11:47
|
(85) Несомненно
|
|||
91
Kassern
07.12.22
✎
11:47
|
(87) "имеет смысл делать только в том случае, когда люди это понимают и согласны с тем, что это будет работать только в форме документа" - так я об этом и писал в начале. При программном проведении нет никакого смысла в вопросах.
|
|||
92
PR
07.12.22
✎
11:49
|
(89) Не соглашусь
Потому что еще раз, провести документ можно не только из формы документа Я бы так делать никогда не стал по куче причин |
|||
93
Ryzeman
07.12.22
✎
11:49
|
(85) 1сник - это что-то типа человек-айтишник? И комп собрать и винду поставить и домен поднять и скриптик написать и сайд забацать и самописку с функционалом ERP запилить?) Да не, можно, только зачем я всё это буду делать за 100-200, когда могу пойти в Java и делать только что то одно за 300? И, я хоть всё равно стараюсь развиваться, потому что не хочу быть линейным кодером всю жизнь, но требовать таких вещей от начинающих программистов, которые на форуме спрашивают технические вопросы - неправильно.
|
|||
94
PR
07.12.22
✎
11:50
|
(91) Так я и говорю, что в данном случае на мой взгляд не та ситуация
И если уж это и проверять, то точно не в транзакции |
|||
95
PR
07.12.22
✎
11:51
|
(93) Он имел в виду разработчик и эникейщик
Что ты придираешься, как-будто не понял? |
|||
96
Kassern
07.12.22
✎
11:51
|
(94) Вот тут есть красивая табличка с началом транзакции https://infostart.ru/1c/articles/1175475/
Можно прикрутить это дело до начала транзакции со стороны формы, если ответ не положительный на вопрос, то даже и не начинать транзакцию |
|||
97
BenDiget
07.12.22
✎
11:52
|
(92) Если проводить документ не Интерактивно, то тогда надо писать ту процедуру, так, чтобы косяков не вышло. Кто вообще напишет код, который заполнит документ остатками свыше, чем есть. А если уж документ пока используется лишь в интерактивном режиме - то работа с формой хороший вариант
|
|||
98
PR
07.12.22
✎
11:53
|
(96) Конечно можно, поэтому и странно, что ты этого не предложил сразу, а предложил говнорешение
|
|||
99
Kassern
07.12.22
✎
11:54
|
(98) Так я и не уточнял, до в или перед транзакцией это запускать, еще раз подчеркну, я лишь написал, как технически реализуется ПоказатьВопрос
|
|||
100
Kassern
07.12.22
✎
11:55
|
И явно указал, что это тема для формы и никак не связано с событиями МО при проведении
|
|||
101
Ryzeman
07.12.22
✎
11:57
|
(95) Да я то как раз понял что вы оба в абстрактном 1снике видите эдакого архитектора, главбуха и сеньора в одном лице. И это меня удивляет, учитывая что PR связан с франчем, а FirstLineSupport как бы ник намекает что он работает в не в ларьке, и что там есть линии поддержки, то есть опять же разделение труда. Зачем тогда нужны консультанты, архитекторы, ведущие программисты, если каждый линейный кодер и стажер обязаны знать все механизмы, все стандарты разработок, всю методологию и бизнес-процессы?
Посмотри на тон, в котором ты пишешь в (81). Да я понимаю, что с юмором, но со стороны похоже на хамство) Да и вообще Татьяныч-стайл "то говно, это говно". Ну так ругай компанию 1с тогда, что останавливаться - это ведь они в принципе добавили возможность вести диалог с пользователем))) |
|||
102
Kassern
07.12.22
✎
11:57
|
(98) А вот ТС реализовал, как раз так как вы пишите, сначала отменяет транзакцию, задает вопрос, а потом заново записывает документ, что имхо криво.
|
|||
103
BenDiget
07.12.22
✎
12:02
|
Вот это расшевелила моя тема форумчан - 100 ответов. И лишь два по делу (54) (2), не считая моей реализации (52)!
Ладно, все тут поняли кто есть кто. Давайте закончим, решение есть) |
|||
104
Kassern
07.12.22
✎
12:02
|
Согласен
|
|||
105
PR
07.12.22
✎
12:06
|
(101) Просто не перевариваю, когда говнокод подается с уверением, что это прекрасное решение
|
|||
106
PR
07.12.22
✎
12:07
|
(102) Где, блеать, я так пишу?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |