Имя: Пароль:
1C
1C 7.7
v7: Формирование документов по таблице значений
0 Босечка
 
26.03.18
17:30
Дана таблица значений. Надо сформировать по ней документы в каждом из документов должно быть по 40 строк. Как это лучше сделать?
1 Босечка
 
26.03.18
17:31
Это на 1с77. Обработка нужна для перехода на 1с8.
2 Базис
 
naïve
26.03.18
17:33
Что уже сделала, какие конкретные вопросы остались?
3 Босечка
 
26.03.18
17:43
как разбить таблицу на документы, в каждом должно быть 40 строк
4 Herby
 
26.03.18
17:49
все зависит от структуры таблицы значений.
5 vova1122
 
26.03.18
17:55
если разбивать по 40 строчек, то просто считать кличество строк. Если кол =40 тогда Док.Записать(). Потом Док.Новый(). и снова считать количество строк до 40. После обхода всей таблицы значений Док.Записать().
6 Базис
 
naïve
26.03.18
18:00
Сделай аккуратную запись в ТЧ одного документа. Потом расскажу, где добавить начала и концы документов.

Но ты точно уверена, что в восьмёрке тебе нужно сделать много маленьких документов?
7 Босечка
 
26.03.18
18:09
точно
8 Босечка
 
26.03.18
18:09
Док1.Новый();
    Док1.УстановитьНовыйНомер(Константа.ПрефиксБазы);
    Док1.ДатаП        = ТекущаяДата();  
    Док1.Текст        = "Ввод на основании документа Сводная Ревизионная Ведомость№ "+ВыбРевизия.НомерДок;
    Док1.Лицензия= Лиц;
    Док1.ДатаДок=ТекущаяДата();    
    Док1.Клиент=Кл1;
    Док1.АдресПоставки=АдрПост;
    Док1.УТАП=1;
    Док1.Склад=Скл;
    Док1.Агент=Аг;
    Для к=1 по 200 Цикл
        Т.ПолучитьСтрокуПоНомеру(к);    
        Если (Т.КоличествоПрограмма<>0) и (Т.КоличествоФакт<>0) и (Т.Серия.НаОстаткахЕгаис.Получить(ТекущаяДата()) <>0)  Тогда
            Док1.НоваяСтрока();
            
            Док1.Товар=Т.Товар;
            Док1.КодТовара=Т.Товар.Код;
            КоличествоВЗаказ= Мин(Т.КоличествоПрограмма,Т.КоличествоФакт,Т.Серия.НаОстаткахЕгаис.Получить(ТекущаяДата()));
            Док1.Колич=КоличествоВЗаказ;
            Док1.Партия=Т.Серия;
            УчЦена= Т.Товар.ЦенаПриходнаяСредняя.Получить(Док1.ДатаДок);
            Док1.ЦенаР = УчЦена-УчЦена/100*Проц;
            Док1.СуммР = Док1.ЦенаР * КоличествоВЗаказ;  
        КонецЕсли;
    Конеццикла;
    Док1.Записать();
9 vova1122
 
26.03.18
18:16
(8) и где тут разбиение строго по 40 строк?. А если в таблице больше 200 строк?
10 Базис
 
naïve
26.03.18
18:20
Сделай процедуры НачатьДокумент и ЗавершитьДокумент.

Потом:
Сч = 0
НачатьДокумент
Цикл переборки строк
   Сч++
   Если Сч = 40 Тогда
      ЗавершитьДокумент
      Сч = 0
      НачатьДокумент
   КонецЕсли
КЦ
Если Сч > 0 Тогда
   ЗавершитьДокумент
КонецЕсли
11 Босечка
 
26.03.18
19:06
попробую
12 Босечка
 
26.03.18
20:13
все получилось вроде. спасибо.