![]() |
|
v7: Можно ли упростить код экспорта в *.txt? | ☑ | ||
---|---|---|---|---|
0
Gangar
06.08.13
✎
18:29
|
База ТиС для Украины
Обработка написана для переноса документов в Бухгалтерию. Можно ли этот код упростить? Пятой точкой чую, что неаккуратненько, однако. Счет = СоздатьОбъект("Документ.Счет"); Расход = СоздатьОбъект("Документ.РасходнаяНакладная"); Налог = СоздатьОбъект("Документ.НалоговаяНакладная"); СЗ = СоздатьОбъект("СписокЗначений"); Текст = СоздатьОбъект("Текст"); Если СФ = 1 Тогда Если ПустоеЗначение(выбФирма) = 1 Тогда Предупреждение("Выберите фирму"); КонецЕсли; Счет.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода); Пока Счет.ПолучитьДокумент() = 1 Цикл Если Счет.Фирма = выбФирма Тогда Если ПустоеЗначение(выбКонтрагент) = 0 Тогда Если Счет.Контрагент = выбКонтрагент Тогда СЗ.ДобавитьЗначение(Счет.ТекущийДокумент()); СЗ.ДобавитьЗначение(Счет.Вид()); СЗ.ДобавитьЗначение(Счет.ДатаДок); СЗ.ДобавитьЗначение(Счет.НомерДок); СЗ.ДобавитьЗначение(Счет.Фирма); СЗ.ДобавитьЗначение(Счет.Контрагент); СЗ.ДобавитьЗначение(Счет.Контрагент.ЕГРПОУ); Счет.ВыбратьСтроки(); Пока Счет.ПолучитьСтроку() = 1 Цикл СЗ.ДобавитьЗначение(Счет.Товар.ПолнНаименование); СЗ.ДобавитьЗначение(Счет.Товар.БазоваяЕдиница); СЗ.ДобавитьЗначение(Счет.Количество); СЗ.ДобавитьЗначение(Счет.ЦенаБезНДС); КонецЦикла; Текст.ДобавитьСтроку(СЗ.ВСтрокуСРазделителями()); СЗ.УдалитьВсе(); КонецЕсли; Иначе СЗ.ДобавитьЗначение(Счет.ТекущийДокумент()); СЗ.ДобавитьЗначение(Счет.Вид()); СЗ.ДобавитьЗначение(Счет.ДатаДок); СЗ.ДобавитьЗначение(Счет.НомерДок); СЗ.ДобавитьЗначение(Счет.Фирма); СЗ.ДобавитьЗначение(Счет.Контрагент); СЗ.ДобавитьЗначение(Счет.Контрагент.ЕГРПОУ); Счет.ВыбратьСтроки(); Пока Счет.ПолучитьСтроку() = 1 Цикл СЗ.ДобавитьЗначение(Счет.Товар.ПолнНаименование); СЗ.ДобавитьЗначение(Счет.Товар.БазоваяЕдиница); СЗ.ДобавитьЗначение(Счет.Количество); СЗ.ДобавитьЗначение(Счет.ЦенаБезНДС); КонецЦикла; Текст.ДобавитьСтроку(СЗ.ВСтрокуСРазделителями()); СЗ.УдалитьВсе(); КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; |
|||
1
Ёпрст
гуру
06.08.13
✎
18:34
|
ну, 15 строк кода можно и выкинуть
|
|||
2
Тьма
06.08.13
✎
18:41
|
(1)Тогда текстовый файл будет больше по размеру.
|
|||
3
Ёпрст
гуру
06.08.13
✎
18:47
|
Пока Счет.ПолучитьДокумент() = 1 Цикл
Если Счет.Фирма <> выбФирма Тогда Продолжить; КонецЕсли; Если ПустоеЗначение(выбКонтрагент) = 0 Тогда Если Счет.Контрагент <> выбКонтрагент Тогда Продолжить; КонецЕсли; КонецЕсли; СЗ.ДобавитьЗначение(Счет.ТекущийДокумент()); СЗ.ДобавитьЗначение(Счет.Вид()); СЗ.ДобавитьЗначение(Счет.ДатаДок); СЗ.ДобавитьЗначение(Счет.НомерДок); СЗ.ДобавитьЗначение(Счет.Фирма); СЗ.ДобавитьЗначение(Счет.Контрагент); СЗ.ДобавитьЗначение(Счет.Контрагент.ЕГРПОУ); Счет.ВыбратьСтроки(); Пока Счет.ПолучитьСтроку() = 1 Цикл СЗ.ДобавитьЗначение(Счет.Товар.ПолнНаименование); СЗ.ДобавитьЗначение(Счет.Товар.БазоваяЕдиница); СЗ.ДобавитьЗначение(Счет.Количество); СЗ.ДобавитьЗначение(Счет.ЦенаБезНДС); КонецЦикла; Текст.ДобавитьСтроку(СЗ.ВСтрокуСРазделителями()); СЗ.УдалитьВсе(); КонецЦикла; |
|||
4
Тьма
06.08.13
✎
19:00
|
(3)Признаю, был неправ :)
|
|||
5
Кукуев
06.08.13
✎
19:00
|
Интересно просто, а для чего это условие, если обработка работает дальше (после нажания ОК, конечно, а так вроде будет ждать до морковкиной заговени)?
Если ПустоеЗначение(выбФирма) = 1 Тогда Предупреждение("Выберите фирму"); КонецЕсли; |
|||
6
Gangar
06.08.13
✎
20:54
|
Спасибо, совсем вылетел из головы оператор "<>"
|
|||
7
ЧеловекДуши
06.08.13
✎
20:57
|
(0) Можно, допиши выгрузку через DBF файлы :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |