Имя: Пароль:
1C
1C 7.7
v7: открыть форму документа
0 Dmitriy_stav
 
03.03.13
15:20
Я програмно создал новый документ и заполнил его.
Могу ли вывести его на экран не записав перед этим.
1 Torquader
 
03.03.13
15:23
В семёрке - нет или махинации с открытием формы и сохранением или сохранение и только потом открытие.
2 Dmitriy_stav
 
03.03.13
15:28
Сохранять нежелательно, пока пользователь глазами не увидит. А что за махинаци???
3 Guk
 
03.03.13
15:31
порватый баян...
4 Torquader
 
03.03.13
15:32
(3) Самое простое - открываешь форму нового документа и в параметре передаёшь таблицу значений для заполнения документа данными.
5 Dmitriy_stav
 
03.03.13
15:34
Я все детство занимался игрой на баяне, и ни на одной кнопке про открытие несохраненного документа не было написано.
Баян это страшная штука, уж поверь мне. Даже порванный.
6 Guk
 
03.03.13
15:36
(4) самое простое, это подключить формекс и без каких-либо извратов открывать форму, хоть записанную, хоть незаписанную...
7 Torquader
 
03.03.13
15:37
Самое печальное в другом - при открытии формы нового документа, как и при его создании в программе, на него расходуется номер, если в этот момент будет создан следующий документ, то номер текущего может быть потерян, если его не сохранят.
8 Dmitriy_stav
 
03.03.13
15:38
Ну да, но тогда и в открываемом документе в модуле придется  изменять приоткрытии или писать ввод на основании. А это двойная работа.
9 Dmitriy_stav
 
03.03.13
15:46
Таквоттож. Я и думал, раз номер есть, значит и открыть можно.
10 Злопчинский
 
03.03.13
16:21
Автор, нахрена открывать заполненный документ? что там, В ЗАПОЛНЕННОМ документе юзверь увидеть и проверить должен? или ты НЕ ЗНАЕШЬ какими данными ПРАВИЛЬНО заполнять программный док..? Знаешь - заполни, запиши, открой - пусть делают что хотят после того как ты ПРАВИЛЬНО заполнил документ. Не знаешь - нефиг заполнять! Открой форму нового документа - пусть сами заполняют
11 Torquader
 
03.03.13
16:26
(10) Он просто в восьмёрке привык, что там можно сделать сначала СоздатьОбъект, а потом ПолучитьФорму().Открыть() и откроется форма незаписанного документа.
В семёрке модуля объекта, как такового, просто нет - есть модуль документа, но он работает только при проведении, а также модуль формы, который работает, когда форма открыта.
12 Злопчинский
 
03.03.13
16:30
(11) да тут принуип сам важен. я вот сколько лет в разных конторах генерю тоннами на автомате новые доки - ну ни разу такой херни даже в помыслах не было... хз почему... умнынй, наверное, потому что...
http://news.rin.ru/pictures/24/221108.jpg
13 Web00001
 
03.03.13
16:38
(12)Клиент хочет видеть документ, перед тем как его записать. Это часть ТЗ и за выполнение работы, он платит деньги, он не хочет смотреть правильные данные или нет в каком то эфемерном отчете, он хочет открыть заполненную реализацию, пересчитать сумму в разных типах цен и если все ОК записать(реальный пример, слава яйцам 8ка, обошлось без гемора). Ему какой довод привести?
14 Torquader
 
03.03.13
16:39
(12) На самом деле, такое иногда нужно - загружают документ из другой системы по переданным данным, и пользователю хочется посмотреть, что получится, прежде чем документ окажется в базе.
Другое дело, что посмотреть можно и на любой другой форме.
Потом, очень важно, чтобы запись документа проходила штатно, то есть выполнялась проверка заполненности и т.п., что находится в модуле формы, иначе можно записать всё, что угодно.
15 Torquader
 
03.03.13
16:42
В восьмёрке внутренний идентификатор присваивается документу при его рождении, то есть запись никак на расходование Ид (а там же GUID) никак не влияет. Поэтому, никаких проблем с работой с документом нет - мы даже можем дать на него ссылку, чтобы присвоить другому документу.
В семёрке Ид документа формируется по таблице и он единый для всех - присваивается в момент записи в базу данных посему до записи документа в базу он как бы не существует.
16 Злопчинский
 
03.03.13
17:00
(13) типичный .овноподход
> он хочет открыть заполненную реализацию, пересчитать сумму в разных типах цен и если все ОК записать
- свидетельствует  том, что на документ повесили несвойственный функционал, несвойственный функционал - кривая реализация. Однако, как известно куче фришников, франчей и фикси - похрен что делать, лишь бы деньги платили.
17 Злопчинский
 
03.03.13
17:02
(14) >  загружают документ из другой системы по переданным данным, и пользователю хочется посмотреть, что получится, прежде чем документ окажется в базе.
- эээ, извините, а что алгоритмы трансформации и формат входных данных не известен...? неизвестно что НАДО получить на выходе (в документе) по входным данным...? ну тады да - какой-то полуфабрикат, который подтягивает черновик и дальше делают ручками... мой же мелкий опыт показывает "..все что вы делаете ручками - все очень плохо"...
18 Torquader
 
03.03.13
17:04
(16) Если заказчик сам не знает, что ему надо, то и получаются такие ТЗ.
Конечно, можно пытаться объяснить заказчику, что это ему не нужно, а нужно ему совершенно другое.
19 Torquader
 
03.03.13
17:06
(17) Я видел очень много "умных" людей, которые переносят данные из одной учётной программы в другую, а потом их правят. То есть в документе могут удалить часть строк или перенести в другой, правда, я не знаю, что мешает сохранить документ перед изменением.
20 Злопчинский
 
03.03.13
17:09
(18) ну про то и речь...
я бы немного уточнил твою мысль:
"..НУЖНО ПЫТАТЬСЯ ВЫЯСНИТЬ у заказчика, что ему нужно".
.
заказчику зачастую начинают описывать нужные ПО ИХ ПРЕДСТАВЛЕНИЯМ инструменты/методы.. гвозди, молоток... получают гвозди.. молоток.. и только потом выясняется что надо две железные рельсы скрепить...
21 Злопчинский
 
03.03.13
17:12
(19) хз.. сие покрыто мраком как правило ;-) по моим наблюдениям - это следствие изначально неправильной постановки работы/учета или же недостаточности ресурсов на такую постановку... возможно, такакй тупой обезъяний процесс вполне себе оправдан где-то... на неключевых участках... Спустя неделю/месяц поянть почему данные разложен так а не иначе - фиг проссышь... ВРОДЕ правильно - ну и зашибись...
22 Torquader
 
03.03.13
17:17
(21) Основная проблема в том, что на уровне 1С (да и многих других программ) не получается сделать все данные в одной системе с разделением по участкам, чтобы каждая часть программы работала только со своими данными.
Тогда необходимости переноса данных, как и попытка слепить из данных одной системы, необходимые в другой - отпадают.

В случае переноса - посмотреть документ никак не мешает, но самое главное - продумать вопрос синхронизации номеров, чтобы при повторном переносе открывался заполненный в прошлый раз документ, а не новый - иначе - получается граната для обезьяны.
23 Злопчинский
 
03.03.13
17:21
(22) ух, переносы и обмены жуть как не люблю. У меня вот по истечении двух лет выяснилось что требуется некая определенная инфа, а получить ее влегкую - неготкуда.. бо не планировалось/не думалось/давайдавай... вот и маюсь сейчас склеивая часть инфы из торг с частью инфы из бух. главное чтобы это никто из других 1Сников не видел ;-) распнут/засмеют...
24 Dmitriy_stav
 
03.03.13
18:17
Знаешьв чем заморочка, товар приходуется по строчкам 190 кг* 2,17  + .... и в итоге получается конкретная сумма. А в накладной поставщика написано что 800 кг * 3р = 2401 рубль. И хоть ты его убей. Он говорит что 2 х 2 = 4.1. Поэтому приходится сворачивать все одинаковые строчки и делать новый документ. И там уже корректировать сумму на сумму по накладной. А может так получиться что и пользователь в основном документе где в кол-ве ошибся и что, каждый раз удалять вновь созданный документ?
25 Dmitriy_stav
 
03.03.13
18:27
Так что проверять документ перед записью всегда надо.  И это не прихоть пользователя.
Получается что переданный параметр в открывающуюся форму единственное решени. Ввод на основании тоже не пашет пока основной документ не записан.
26 Злопчинский
 
03.03.13
18:39
(24) абсолютно тривиальная задача, в чем проблема подтянуть накладную поставщика из файла обмена, загрузить по данным поставщика и в протокол выдать строки где расхождения по типу:
поставщик: 800*3 = 2401, по математике=2400, невязка = 1, этот загруженный документ сравнить С ФАКТОМ приемки (приемку делай хоть одну позицию на 20 строк ОТДЕЛЬНЫМ СООТВЕТСУЮЩИМ ДОКОМ или как-то иначе) и выдавать проткоол фактической приемки.
.
хотя, вообщем, похрен. Ибо из изложеняи задачи все равно неясны все тонкости. Но итог один: чем меньше будут чего-тотам вбивать ручками ВМЕСТО ПОСТАВЩИКА - тем больше ошибок и "ненужной" работы... как-то так.
27 Dmitriy_stav
 
03.03.13
19:15
Накладная поставщика действительно находится в файле, только не обмена а целофановом на столе у кладовщика. И пользователю тоже не улыбается два раза одно и тоже заносить. Действительно риск ошибиться повышается. Но пока поставщик не начнет писать в накладной 2 х2 =4, другого пути пока не видно. Но это все лирика. Спасибо за совет.
28 ЧеловекДуши
 
03.03.13
19:28
(11) В семерке делается тоже самое :)
29 ЧеловекДуши
 
03.03.13
19:29
(26) Просто они считают: Цена * Количество = Сумма
А поставщик: Сумма / Количество = Цена

Вот и весь секрет :)
30 ЧеловекДуши
 
03.03.13
19:30
+ Еще там же автоматически включается само НДС, но может и не включаться... Это как с поставщиком договорится клиент :)
31 ЧеловекДуши
 
03.03.13
19:30
(27) Бессмысленный путь... но ты страдай, только через страдание приходит опыт :)
32 KishMish
 
03.03.13
19:31
(0)
начать транзакцию
записать докуент
откыть его
отменить транзакцию
33 ЧеловекДуши
 
03.03.13
19:33
(32) С 50-тью пользователями, не самый гуманный путь :)
34 ЧеловекДуши
 
03.03.13
19:34
+(32)  А если он после еще нажмет "Сохранить"?
Что будет?
35 KishMish
 
03.03.13
19:37
(34) впрос был про вывести. если нажмет созранить будет .ошибка
36 Злопчинский
 
03.03.13
19:56
(27) так ты ничего и не понял...
37 Umga2002
 
03.03.13
21:31
Как вариант: Заполнить форму Обработки и по кнопке перенсти в документ.....
38 Zhuravlik
 
03.03.13
21:46
(0) ОткрытьФорму("Документ.МойДокумент", Конт);
Конт.Контрагент = МойКонтрагент;
Конт.ДатаДок = МояДата;
и т.д.

Открывая форму нового документа, заполняем через контекст все необходимые реквизиты. При этом он записан будет только по желанию того, кто его открыл.
39 Cthulhu
 
03.03.13
23:10
(38): таб.часть таким образом хренасдва заполнишь. разве что с внешними компонентами, которые эту возможность (заполнение таб.части документа через контекст формы) поддерживают - например, formex.
40 Zhuravlik
 
03.03.13
23:39
(39) Да, действительно, без формекса не работает... Не знал.
41 Web00001
 
04.03.13
03:20
(16)Ты не линуксоид\маковод случаем? Их симптомы из разряда:
- В вашей системе реализован протокол X?
- Нет. Протокол X не нужен. По крайней мере мне ни разу не понадобился.
Вопрос здесь не в том, какой функционал повесили на документ, вопрос в том, что заказчику удобнее работать в форме документа. Если с реализацией пример тебе не нравится(там действительно должны быть точные цифры), давай возьмем формирование заказа. очень часто это процесс творческий(за исключением очень больших объемов, когда не автоматизировать это невозможно), в середине которого, человек может посмотреть
- как то мало получается, не буду оформлять, сделаю чуть позже когда заказ будет побольше.
- Маловато товара на складе у поставщика, не буду оформлять, опять половина не приедет.
Ну и тд, ситуации бывают разные. Или просто бросить на середине, потому что передумал. Или отказаться от записи по каким то еще причинам.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн