Имя: Пароль:
1C
 
Обработка печать прайс-листа
0 Arhitektor
 
13.10.05
15:32
Доброе время суток!

1С:Предприятие 7.70.025
1С:Торговля и склад 7.70.939

Немного переделал обработку Печать прайс-листа и она теперь творит чудеса: иногда при выводе строки группы не выводит некоторые секции, хотя в отладчике однозначно проходит эту команду и выполняет ее. Уже совсем отчаялся найти проблему.

Может кто-нибудь поможет в ее решении? Готов выслать саму обработку и пример неправильно сформированного прайс-листа (e-mail укажите)

Заранее спасибо
1 Скользящий
 
13.10.05
15:33
Давай лучше ты укажешь свой адрес, сумму гонорара.
2 Скучно мне
 
13.10.05
15:34
шли!
evgen_sviridov@bk.ru
3 Arhitektor
 
13.10.05
15:35
(1) :) сумма бы самому не помешала
А в интересах саморазвития неинтересно посмотреть?
Писать можно на aistoma()gmail.com
4 Arhitektor
 
13.10.05
15:39
(2) письмо ушло
5 skunk
 
13.10.05
15:44
лови... это из древнего...
6 Arhitektor
 
13.10.05
15:56
(5) словил :)
но обработка не идет, спотыкается на переменных которых у меня нет
я тебе в ответ свой пакет послал - посмотри
7 Скучно мне
 
13.10.05
15:57
Ошибка кроется в этих строках (552-560):

       Иначе  // ЭтоГруппа() = 1
           
           // Запоминаем текущую группу
           ТекущаяГруппа = ТекЭлем;
           
           Наименование = ТекЭлем.Наименование;
           ИсхТабл.ВывестиСекцию("Группа" + Уровень + "|Название");

           //мои изменения
           Если ПоНаличию = 1 Тогда
               Если ВидРазделителя = 1 Тогда
                   ИсхТабл.ПрисоединитьСекцию("Группа" + Уровень + "|Вес");
                   ИсхТабл.ПрисоединитьСекцию("Группа" + Уровень + "|КоэфТовара");
                   //ИсхТабл.ПрисоединитьСекцию("Группа" + Уровень + "|Колво");
               КонецЕсли;    
           КонецЕсли;    
           //конец изменений



я бы на твоем место подумал при "иначе"
8 Скучно мне
 
13.10.05
15:58
//мои изменения
           Если ПоНаличию = 1 Тогда
               Если ВидРазделителя = 1 Тогда
                   ИсхТабл.ПрисоединитьСекцию("Группа" + Уровень + "|Вес");
                   ИсхТабл.ПрисоединитьСекцию("Группа" + Уровень + "|КоэфТовара");
                   //ИсхТабл.ПрисоединитьСекцию("Группа" + Уровень + "|Колво");
               Иначе
                   //,,,,,,
               КонецЕсли;  
           Иначе
               //,,,,,  
           КонецЕсли;
9 Arhitektor
 
13.10.05
16:00
(8, 9) Я работаю только с установленными флагами ПоНалицию и ВидРазделитля, равными 1 => команды выполняются всегда
10 skunk
 
13.10.05
16:00
(6)неее... четыре дела я сразу делать не умею... я же Юлий... только учусь...


спотыкаться могет только на функции глНайтиЧисло()

но просто это стройку за комь... она нужна для скидок...
11 skunk
 
13.10.05
16:01
а да константа.ГлавныйСклад тоже в коммент
12 Скучно мне
 
13.10.05
16:04
Как видишь, не всегда ;) просто у тебя этих условий в коде несколько штук... вот и проверяй.. если честно, в конце рабочего дня нет желания вникать в подробности кода.... если не к спеху, то могу это сделать завтра и до 11ч Москвы тебе выслать отредактированный вариант... А если нужно еще вчера - то я тебе указал куда рыть надо.
13 Arhitektor
 
13.10.05
16:07
(10) Прикольно
Хорошая работа

А что в моей не так, не понял?
14 Arhitektor
 
13.10.05
16:08
(12) Посмотри, буду рад
15 Arhitektor
 
13.10.05
16:11
(12) даже если эти условия убрать и просто выводить, то все равно такая же беда
16 skunk
 
13.10.05
16:14
(13)я ее не смотрел... говорю делаю уже три вещи...

одну по работе...
одну по дружбе..
и тут на фруме бздеть чего-то надо...


если еще твой займусь... я просто ипанусь ;)))
17 Arhitektor
 
13.10.05
16:16
(16) будем ждать, пока ты станешь Юлием :)
18 skunk
 
13.10.05
16:24
(17)а потом моего лучшего друга Брута... да?
19 Arhitektor
 
13.10.05
16:25
(12) да, в конце рабочего дня не работается, но
1) проверил все условия - все выполняются
2) Проверил под отладчиком - заходит в тело условия и команды выполняются, но секции не выводятся
20 Arhitektor
 
13.10.05
16:26
(18) если есть желание...
21 romix
 
13.10.05
16:33
Если нечто глючит, имеет смысл везде втыкать отладочную печать (операторы Сообщить), потому что отладчик - это хорошо, но он не позволяет изловить редкие случаи необычного поведения программы.

Все казусы / необычные ветви программы надо аккуратно отслеживать -> чем больше отладочной печати и ошибочных сообщений при малейших подозрениях на прикол (например, во входных данных), тем лучше.
22 Arhitektor
 
13.10.05
16:50
(21) Ставил вывод сообщить после каждой команды в коде, где глючит - все сообщения выводятся!!!
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший