Вход | Регистрация

Форумы на Кубань.Ру


1С:Предприятие ::

Метки: 

Создание нескольких однотипных документов из обработки. Что не так?

Ø
Я
   raven
17.11.04 - 23:39
//*******************************************
Процедура СоздатьДокументДоговораПодряда(Знач Номер)
  Док = СоздатьОбъект("Документ.ДоговорГраждПравХаракт");
  ПараметрыКоманды = СоздатьОбъект("СписокЗначений");
  ПараметрыКоманды.ДобавитьЗначение(ДатаДок, "ДатаДок");
  ПараметрыКоманды.ДобавитьЗначение("" + НомерДок + Дополнить(Номер), "НомерДок");
  ПараметрыКоманды.ДобавитьЗначение(Данные.ПолучитьЗначение(Номер, "Сотрудник"), "Сотрудник");
  ПараметрыКоманды.ДобавитьЗначение(Начало, "Начало");
  ПараметрыКоманды.ДобавитьЗначение(Окончание, "Окончание");
  ПараметрыКоманды.ДобавитьЗначение(Данные.ПолучитьЗначение(Номер, "Сумма"), "Сумма");
  ПараметрыКоманды.ДобавитьЗначение(Заказ, "Заказ");
  ПараметрыКоманды.ДобавитьЗначение(НормоЧасы / Данные.КоличествоСтрок(), "НормоЧасы");
  
  Конт = СоздатьОбъект("СписокЗначений");
  ОписательДокумента = "Документ."+Док.Вид();
  Конт = глОткрытьФормуИВыполнитьКоманду(ОписательДокумента, "Создать", ПараметрыКоманды);
  Если ТипЗначенияСтр(Конт) = "СписокЗначений" Тогда
    Конт = Конт.Получить("ТекущийДокумент");
    Попытка
      Если Конт.Выбран() = 1 Тогда
        Док.НайтиДокумент(Конт);
      КонецЕсли;
    Исключение
    КонецПопытки;
  КонецЕсли;	
КонецПроцедуры//*******************************************
//*******************************************
Процедура Сформировать()
  
  Если Проверка() = 0 Тогда
    Возврат;
  КонецЕсли;
  
  Если (СоздатьДокументПодряда = 1) Тогда
    Колво = Данные.КоличествоСтрок();
    Для сч = 1 по Колво Цикл
      СоздатьДокументДоговораПодряда(сч);
    КонецЦикла;
  КонецЕсли;
  
  Если (СоздатьДокументВыплаты = 1) Тогда
    СоздатьДокументВыплаты();
  КонецЕсли;
    
КонецПроцедуры
 
  Рекламное место пустует
   systemstopper
1 - 17.11.04 - 23:42
Ты б хоть для начала сказал, что не так и попросил бы ответить, в чём может быть причина.
   raven
2 - 17.11.04 - 23:45
Сорри. При исполнении процедуры сформировать появляется всего один документ. А хотелось бы несколько. Так что не так?
   IAm
3 - 18.11.04 - 00:04
И где тут создается документ?
   raven
4 - 18.11.04 - 00:07
Может я что-то не допонимаю, но по-моему, здесь:
Конт = СоздатьОбъект("СписокЗначений");
  ОписательДокумента = "Документ."+Док.Вид();
  Конт = глОткрытьФормуИВыполнитьКоманду(ОписательДокумента, "Создать", ПараметрыКоманды);
По-крайне мере, в 1с открывается форма документа.
   IAm
5 - 18.11.04 - 00:12
По крайней мере несколько раз одна и та же форма и открывается
   raven
6 - 18.11.04 - 00:15
В том то и косяк, ведь хочется подсунуть список с сотрудниками и суумами, а он на каждого документ формирует. А он, гад, одну и ту же форму открывает.
   IAm
7 - 18.11.04 - 00:17
Не вижу тут никакого косяка.
Разве написано в документации, что любая функция с названием
глОткрытьФормуИВыполнитьКоманду)
непременно должна создавать документ?
   raven
8 - 18.11.04 - 00:20
Хорошо, я не прав. Так как сделать так, как мне нужно?
   IAm
9 - 18.11.04 - 00:22
Прежде чем ответить задам пару вопросов с целбю выяснения какого рода информацию ты способен воспринять.
Вопрос 1: Пользовались ли Вы когда-нибудь синтакс-помощником?
   raven
10 - 18.11.04 - 00:23
Я то думал, что
ТипЗначенияСтр(Конт) = "СписокЗначений", а на самом деле
ТипЗначенияСтр(Конт) = "ГрупповойКонтекст".
То есть форму дока я заполнил, как же связать ее с созданным документом?
 
  Рекламное место пустует
   IAm
11 - 18.11.04 - 00:24
А зачем тебе заполнять форму дока?
Разве где-то написано, что для создания документа необходимо открывать и заполнять форму дока?
   raven
12 - 18.11.04 - 00:27
Синтакс-помощником? Вроде слыхал что-то! :-)))
Форма нужна, что бы было можно проверить, что там обработка назаполняла.
   IAm
13 - 18.11.04 - 00:28
После создания документа её можно открыть процедурой ОткрытьФорму.
В синтакс-помощнике поищите в ветке Документы методы
Новый() и Записать()
   raven
14 - 18.11.04 - 00:42
Правильно ли я понял последовательность действий:
Док = СоздатьОбъект("Документ.ДоговорГраждПравХаракт");
Док.Новый()//Заполняем аттрибуты формы
Док.ОткрытьФорму()
Док.Записать()
?
   IAm
15 - 18.11.04 - 00:43
//Заполняем аттрибуты формы
Док.Записать();
ОткрытьФорму(Док.ТекущийДокумент());
   raven
16 - 18.11.04 - 00:45
IAm, огромное спасибо! Завтра попробую.
   novice
17 - 18.11.04 - 04:47
raven, а ты чьих будешь?



Список тем форума

Форум Территория 1С

 
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует