Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Странности с четными/нечетными релизами  (Прочитано 10343 раз)
0 Пользователей и 1 Гость смотрят эту тему.
AndyG
Постоялец

by
Offline Offline

« : 05-07-2010 06:30 » 

Привожу часть кода программы, который работает на "четных" релизах и в упор не пашет на "нечетных"
Проверено на 14, 18, 25, 27 релизах

   СчетГруппа=СчетПоКоду("41");
        //имеет субсчета 41.1 и 41.2
        //субконто1 - Место хранения ТМЦ (собственно ВыбСклад)

        ЗапросПриход = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(ПриходИзОпераций)
   |Период с ДатаНач по ДатаКон;
   |ОбрабатыватьОперации Включенные;
   |Обрабатывать НеПомеченныеНаУдаление;
   |Док = Операция.ТекущийДокумент;
   |Счет = Операция.Дебет.Счет;
   |Склад = Операция.Дебет.МестаХранения;
   |Группировка Док упорядочить по Док.ДатаДок, Док.ВремяДок, Док.НомерДок;
   |Условие(Счет.ПринадлежитГруппе(СчетГруппа) = 1);
   |Условие(Склад = ВыбСклад);
   |"//}}ЗАПРОС
   ;
   Состояние("Запрос к приходу...");
   Если ЗапросПриход.Выполнить(ТекстЗапроса) = 0 Тогда
      Возврат;
   КонецЕсли;
   
   ТЗ=СоздатьОбъект("ТаблицаЗначений");
   ЗапросПриход.Выгрузить(ТЗ);
   ТЗ.ВыбратьСтроку();

на нечетных релизах выдает пустую таблицу, хотя движения есть. Может кто знает решение данной проблемы? Я просто вынужден сидеть на 14м релизе изза этого. Или дайте кто ссылочку на 26й релиз - проверю на нем:))
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #1 : 05-07-2010 12:29 » 

Это заговор!!!
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 06-07-2010 13:56 » 

AndyG, одинаково ли тестировал (базы файловые/SQL брал для всех релизов)?
В каком именно месте ошибка? (поробовать убрать по очереди условия или поменять их на другие, не выгружать в таблицу а обойти запрос по группировкам)
Пробовал ли перед тестированием сделать тестирование и исправление с полным пересчетом итогов?

P.S. Я на 27 релизе глюков не заметил, кроме этого, но конструкцию "ОбрабатыватьОперации Включенные" я нигде не использовал.
Записан
AndyG
Постоялец

by
Offline Offline

« Ответ #3 : 07-07-2010 06:04 » 

Этот глюк я обнаружил, когда поставил свою базу другому клиенту.
Так что базы одинаковые.
Да, условия менял, убирал, но не могу же я убрать нужные мне условия в запросе, иначе зачем он?  Улыбаюсь
Выгрузка в ТЗ добавлена только для проверки запроса
"ОбрабатыватьОперации Включенные"  - очень полезное условие, так как при удалении операции
ее проводки выключаются, причем при снятии Операции с удаления проводки остаются ВЫКЛЮЧЕННЫМИ, для их включения приходится f8 жать. Таким образом в базе могут быть операции с выключенными проводками, а они мне не нужны.
Но, убрал это условие - не помогло Жаль

По большому счету я могу сидеть и на 14м релизе, но время не стоит на месте, сейчас уже 2008 сервер ставлю клиентам, а там отличный от 1С порядок сортировки. Если работать в терминальном режиме - проблем вроде нет, но в обычном режиме работать на ХР-клиентах уже не смогут, ведь OrdNoChk.prm работает начиная
 с 26го релиза.

Может есть у кого 26й релиз 1См77??? Ну никак не могу найти.


Записан
AndyG
Постоялец

by
Offline Offline

« Ответ #4 : 07-07-2010 06:07 » 

Забыл уточнить - база ДБФ.
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 07-07-2010 19:46 » 

Зачем нужно "ОбрабатыватьОперации Включенные" я понимаю - просто твоя задача решается ИМХО более элегантно с использованием объекта БухгалтерскиеИтоги.
Ты так и не ответил про тестирование с пересчетом итогов - делал?
Offtopic:
26го релиза у меня лично нету...
Записан
AndyG
Постоялец

by
Offline Offline

« Ответ #6 : 09-07-2010 05:27 » 

b]Kivals[/b],
Да с базой все в порядке.
Тестирование/Исправление, полный пересчет тут не причем
А БухгалтерскиеИтоги тут неподходят, тк я обрабатываю ВСЕ проводки документа, даже не корреспондирующие со счетом непосредственно а только между собой.
С помощью БухИтогов я вывожу начальное и конечное сальдо, а доки приходится лопатить в любом случае.
Для нагладности прикрепляю вид результирующей таблицы.

Конечно, есть еще вариант не использовать запрос а ВыбратьОперацииСПроводками, но мой отчет РАБОТАЕТ, правда на четных релизах.
Как говорится, если работает, зачем лезть? Улыбаюсь

* ТО.JPG (118.5 Кб - загружено 1107 раз.)
« Последнее редактирование: 09-07-2010 05:37 от AndyG » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 09-07-2010 13:23 » 

Цитата
...ВСЕ проводки документа, даже не корреспондирующие со счетом...
Хм... похоже присутсвует непонимание БУ: неужели эти цифры ты не видишь в ОСВ по счету? а она (ОСВ) строится именно с использованием БУ.
Вот приблизительный пример кода для твоего случая (с перебором документов) с использованием БУ:
Код:
Ит=СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения,ВыбСклад,2);
Ит.ВыполнитьЗапрос(ДатаНач,ДатаКон,СчетГруппа,,,,"Операция",);
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод()=1 Цикл
Док=Ит.Операция.Документ;
...
КонецЦикла;
ИМХО за счет неиспользования условия Счет.ПринадлежитГруппе(СчетГруппа) = 1 (точнее его перевод в более оптимизированный вид) должно работать быстрее.
Записан
AndyG
Постоялец

by
Offline Offline

« Ответ #8 : 09-07-2010 14:39 » 

Kivals
Полностью согласен
просто я привык использовать БИ как итоги и обороты - СТЕРЕОТИП
« Последнее редактирование: 09-07-2010 18:54 от AndyG » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines