|   |   | 
| 
 | 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 файлы :)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |