|
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
|
все получилось вроде. спасибо.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший