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

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


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 человек.
Рекламное место пустует