К списку форумов К списку вопросов
Вопрос к профессионалам 1 С
tracer666
30.09.2004 - 14:26
1 С 7.7 Необходимо , чтобы один документ при своем проведении создавал другой документ заполнял, записывал и проводил его и все это было не было видно пользователю . Народ кто что подскажет?
SnarkHunter
1 - 30.09.2004 - 14:29
Проблем нет... Только делать это при проведении - моветон...
tracer666
2 - 30.09.2004 - 14:32
Хотелось бы более конкретно
Zebestov
3 - 30.09.2004 - 14:34
А куда конкретнее? Дальнейшее уже переходит в стадию поминутной оплаты...
sauxID
4 - 30.09.2004 - 14:35
Что значит "моветон"
Фолькишер Беобахтер
5 - 30.09.2004 - 14:37
2(4) Это антоним к слову "Бонтон"
tracer666
6 - 30.09.2004 - 14:38
(3)С поминутной оплатой ты сюда пришел зря , боюсь ты не будешь пользоваться спросом.
tracer666
7 - 30.09.2004 - 14:40
(2)
Rommick
8 - 30.09.2004 - 14:40
Посмотри как делается продажа собственной фирме. Там из одной формы два документа получаются: расход и приход.
sauxID
9 - 30.09.2004 - 14:40
А вообще при проведении т.е. не посредственно в модуле документа это прокатит ведь ОбработкаПроведения() транзакцию держит даст она ще что нить записать?
tracer666
10 - 30.09.2004 - 14:42
При проведении не работает команда Док.Провести();
поскольку не закрыта транзакция.
Thrash
11 - 30.09.2004 - 14:43
(6) не скажи.
все, что конкретнее - это конкретно куски кода, причем на основе твоих данных о виде и реквизитах документа. тебе могут подсказать путь, а вот идти по нему придется тебе.
а судя по вопросу - тебе нужно действительно попросить сделать кого-то, ибо пока ты сам дойдешь - много воды утечет и ошибок прибудет.
вот тебе самый простой путь (минимум):
в обработке проведения, в конце, в блоке обработки исключительных ситуаций в рамке единой транзакции создавай, заполняй и проводи другой документ, при этом воздержись от вывода каких либо сообщений, и будет тебе счастье.
КРС
12 - 30.09.2004 - 14:45
Один, из стандартных вопросов, свидетельствующих о неправильной постановке
задачи.
sauxID
13 - 30.09.2004 - 14:45
"в рамке единой транзакции" что за термин такой
aleonov
14 - 30.09.2004 - 14:46
(0)
В ПриЗаписи() (Есть такая функция, это в модуле документа), там можно создавать документы. У меня например есть что-то типа этого:
Процедура ПриЗаписи()
  Если ПустоеЗначение(Фирма.Субброкер) = 0 Тогда
    Если ПустоеЗначение(ТекущийДокумент()) = 1 Тогда
      Субброкерство(Фирма.Субброкер,Фирма.СубброкерКлиент)
    КонецЕсли;
  КонецЕсли;
КонецПроцедуры
Процедура Субброкерство(СФирма,СКлиент)
  Перем ч,м,с,МВремя;
  ДокСуббр = СоздатьОбъект("Документ.ПриходДенег");
  ДокСуббр.Новый();
  МВремя = ТекущееВремя(ч,м,с);
  ДокСуббр.УстановитьВремя(ч,м,с);
  ДокСуббр.ДатаДок = ДатаДок;
  ДокСуббр.Автор = Пользователь.ТекущийЭлемент();
  ДокСуббр.Клиент = СКлиент;
  ДокСуббр.Сумма = Сумма;
  ДокСуббр.Валюта = Валюта;
  ДокСуббр.Курс = Курс;
  ДокСуббр.Дата_Курса = ДатаДок;
  ДокСуббр.Биржа = Биржа;
  ДокСуббр.Рынок = Рынок;
  ДокСуббр.ДокументОснование = ДокументОснование;
  ДокСуббр.ТипСделки = ТипСделки;
  //ДокСуббр.БанковскийСчет = СФирма.БанковскийСчет;
  ДокСуббр.Фирма = СФирма;
  ДокСуббр.Записать();
  ДокСуббр.Провести();
  Если ПустоеЗначение(СФирма.Субброкер) = 0 Тогда
    Субброкерство(СФирма.Субброкер,СФирма.СубброкерКлиент)
  КонецЕсли
КонецПроцедуры
Thrash
15 - 30.09.2004 - 14:46
(10) модуль формы, ПриЗаписи
(13) в рамках
aleonov
16 - 30.09.2004 - 14:48
+14 Тут правда есть тонкости, например если документ не был записан, т.е. отказались от записи, это не отработает. Но это все можно корректировать.
Здесь в этом примере при проведении документа, у меня на автомате по цепочке проводятся документы в вышестоящие фирмы, для того чтобы были видны в разрезе фирм и фирм-клиентов (но это не суть важно, не забивай голову =))
tracer666
17 - 30.09.2004 - 14:49
(11) Интересно про обработку исключительных ситуаций,по подробней пожалуста.
  Суть проблемы следующая есть приходный документ, например Ав. отчет в котором материал пришел со счетом фактурой и это счет фактура должна появится при проведении . Я в общем то выход нашел но он какой то не сексуальный , создал процкедуру в форме и подцепил к кнопке ок
aleonov
18 - 30.09.2004 - 14:50
(15) Твоя правда.
tracer666
19 - 30.09.2004 - 14:52
(14)Идея бомба , ней только одна проблема,документ может быть записан но не проведен , а подчиненный уже сделал проводки
aleonov
20 - 30.09.2004 - 14:53
(19) Ну тебе прямо все на свете рассказывать надо. ;) Подумай тоже чуток. Обработать все можно :)
Thrash
21 - 30.09.2004 - 14:54
ЖКК, раздел про Попытка...Исключение...КонецПопытки
sauxID
22 - 30.09.2004 - 14:55
(19)А процедура при проведении не прокатит?
tracer666
23 - 30.09.2004 - 14:56
(20)Ничего ты таким образом не обработаешь , а если и обработаешь то это будет совсем не сексуально.
BruceXXX
24 - 30.09.2004 - 14:57
Лана. Ловите идею :) 100% рабочая.
В обработке проведения делаешь открытьформу() нужного дока с каким-нить параметром. В открываемом доке при открытии с этим параметром делаешь провести() и форма.закрыть(). Результат - при проведении одного дока гарантированно проводится другой. Распровести еще проще :)))
tracer666
25 - 30.09.2004 - 14:58
(22) если ты имеешь ввиду ОбработкуПроведения то читай 10
aleonov
26 - 30.09.2004 - 14:58
(23)Чисто в легкую что угодно сделаю.
Если не нравится, то как вариант попробуй замутить со всякими "ввод на основании" может вообще прикольно получиться
tracer666
27 - 30.09.2004 - 15:00
24 я что то такое находил , если можно то хотя бы примерный код.
warenic
28 - 30.09.2004 - 15:05
ДвоИшники, блин...
http://www.sinor.ru/~my1c/knowhow/post_drd.html
sauxID
29 - 30.09.2004 - 15:05
Ты прикалываешься, найди любую пару документов с Вводом на основании и почитьй "примерный код" (документы напр СЧФ и ЗаписьКП)
BruceXXX
30 - 30.09.2004 - 15:06
я уже все описал :).... лана...
Процедура ОбработкаПроведения()
...
...
ОткрытьФорму("Документ.ХХХ","Спецпар",0);
....
...
КонецПроцедуры
в документе ХХХ:
Процедура ПриОткрытии()
Если Форма.Параметр="Спецпар" тогда
... заполняй док;
Записать();
Провести();
Форма.Закрыть();
...
....
КонецПроцедуры
aleonov
31 - 30.09.2004 - 15:07
(27) Ну код я сейчас вряд ли наду, но общий смысл таков, что документ может быть введен на основании другого документа, в результате чего он становится как бы подчиненным. К примеру при пометке на удаление главного дока, на автомате можно пометить и все введенные на его основании. Но так либо иначе тебе придется все равно доки формировать автоматически в каком-то месте и самому заполнять. Попробуй как у меня выше описано, не понравится или найдешь серьезные недостатки, так откажешься (это никогда не поздно)
tracer666
32 - 30.09.2004 - 15:08
(30)Спасибо.
BruceXXX
33 - 30.09.2004 - 15:09
С тебя пиво :)))))
tracer666
34 - 30.09.2004 - 15:11
(33)Вопросов нет . Ты щас где.
BruceXXX
35 - 30.09.2004 - 15:13
в Москве...
tracer666
36 - 30.09.2004 - 15:14
А я в Краснодарском крае . Так что с пивом пожалуй придется подождать.
BruceXXX
37 - 30.09.2004 - 15:15
значит опять пить виртуально :)))
tracer666
38 - 30.09.2004 - 15:21
Зато здоровее будешь
BruceXXX
39 - 30.09.2004 - 15:22
ничего подобного! просто ты будешь виртульно присутствовать а реально пить за твою удачу :)))
tracer666
40 - 30.09.2004 - 15:25
Вообще идея мне нравится , можешь начинать а я поприсутствую.
BruceXXX
41 - 30.09.2004 - 15:27
не искушай :) я еще на работе. пиво будет вечером
tracer666
42 - 30.09.2004 - 15:32
Так и я на работе а пива от этого хочется не меньше . Как погода в Москве?
BruceXXX
43 - 30.09.2004 - 15:36
это да, хочется!
а погода - уже осень, солнце и прохладно...
JUJO
44 - 30.09.2004 - 15:40
Я наткнулся на следующие грабли: есть 2 документа Д1 и Д2.
При записи Д1 в Д2 переносятся данные.
При проведении Д1 из Д2 берутся данные и формируются проводки для Д1.
Так вот в чем заквозка: если создать новый Д1 и тут же его провести, то все нормально, НО как только я опять открываю Д1, меняю данные (которые должны сохранится в Д2), то при проведении формируются проводки со старыми данными.
Выход для себя нашел только один: Если вновь отрываю Д1 и там что то поменял, то тогда его надо сначала Записать, закрыть, и уж потом открываю и провожу - вот тогда все нормально. Может кто подскажет в чем у меня проблема, или посоветуйте что-нибудь...
tracer666
45 - 30.09.2004 - 15:40
А у нас тепло +34 можно загорать.
Грек
46 - 30.09.2004 - 15:41
+30: а если снять проведение что будет?
BruceXXX
47 - 30.09.2004 - 15:43
(45) везет вам...
BruceXXX
48 - 30.09.2004 - 15:59
(46)
Дык усе просто есть проца ОбработкаУдаленияПроведения()
в ней и обрабатываешь распроведение :)))

К списку вопросов на форуме 1C

>>