Имя: Пароль:
1C
1C 7.7
v7: Квартплата тсж, жск не проводится ввод показаний
,
0 kobzon
 
07.08.12
11:24
В конфигурации Квартплата тсж, жск от эффект информ не проводится документ ввод показаний счетчиков по холодной и горячей воде.
Пишет:
Документ Ввод показаний по ХВ и ГВ по счетчикам на квартиру №  1787 от 28 Февраля 2011 г.: проведение документа (07.08.12/11:21:46)
Для ул. 40 лет октября д.15, кв.8 По данному виду услуги не введен  счетчик с указанным номером и начальными показаниями
Документ НЕ проведен! Необходимо скорректировать  данные!

Удалил показания, внес заново вручную, заругалась на другую квартиру, тоже перезанес. И так несколько квартир пока к 8-ой снова не вернулся с той же ошибкой.
Никто не встречался? Что можно сделать?
1 BlackSeaCat
 
07.08.12
11:26
1. Воспользоваться отладчиком.
2. Пригласить специалиста.
2 kobzon
 
07.08.12
11:30
(1) 1. Отладчиком долго)
   2. Я и есть специалист))
3 Voronve
 
07.08.12
11:32
(2) Точно специалист ?
4 kobzon
 
07.08.12
11:33
(2)Сертификатов не имею, не состоял..
5 vah1
 
07.08.12
11:35
быстро хотел, код строчки давай из отладчика
6 kobzon
 
07.08.12
11:39
Вот функция:
Функция ПроверитьСпрПоказанияСЧ(_Элемент)
   СпрСч.ИспользоватьВладельца(_Элемент);
   Если ФлагПок=2 Тогда//вводим начальные показания  
       Если ПустоеЗначение(НомерСчетчика)=1 Тогда
           Сообщить ( "Для квартиры"+СокрЛП(_Элемент.Наименование)+" по услуге "+СокрЛП(ВидНачисления.Наименование)+" не введен номер счетчика!");
           Возврат 0;
       КонецЕсли;
       Если ПустоеЗначение(ВидНачисления)=1 Тогда
           Сообщить ( "Для квартиры"+СокрЛП(_Элемент.Наименование)+" не введен вид услуги для счетчика!");
           Возврат 0;
       КонецЕсли;
       Если (СпрСч.НайтиПоНаименованию(НомерСчетчика)=1)  Тогда
           Сообщить (_Элемент.Наименование+"- уже существует счетчик с указанным номером! -- "+СокрЛП(НомерСчетчика));
           Возврат 0;
       КонецЕсли;
       Возврат 1;
   Иначе//ФлагПок=1 текущие
       ЕстьСч=0;
       СпрСч.ВыбратьЭлементы();
       Пока СпрСч.ПолучитьЭлемент()=1 Цикл
           Если (СпрСч.ВидУслуги=ВидНачисления)и(СокрЛП(СпрСч.Наименование)=СокрЛП(НомерСчетчика)) Тогда
               Если СпрСч.ПризнакИспользования.Получить(НачМесяца(ДатаПок))=Перечисление.ДаНЕт.Да Тогда
                   ЕстьСч=1;
                   Прервать;
               КонецЕсли;
           КонецЕсли;  
       КонецЦикла;
       Если (ЕстьСч=0) Тогда
           Сообщить ("Для "+_Элемент.Наименование+" По данному виду услуги не введен  счетчик с указанным номером и начальными показаниями");
           Возврат 0;  
       Иначе
           Возврат 1;
       КонецЕсли;  
   КонецЕсли;  
КонецФункции

Что посмотреть в отладчике?
7 vah1
 
07.08.12
11:44
если нет ЕстьСч=1 тогда не знаю
8 ДемонМаксвелла
 
07.08.12
11:45
либо нет счетчика, либо не выполняется одно из условий

Если (СпрСч.ВидУслуги=ВидНачисления)и(СокрЛП(СпрСч.Наименование)=СокрЛП(НомерСчетчика)) Тогда

Если СпрСч.ПризнакИспользования.Получить(НачМесяца(ДатаПок))=Перечисление.ДаНЕт.Да Тогда ...
9 kobzon
 
07.08.12
11:49
(8) и скорее всего второе.. Получается (НачМесяца(ДатаПок) это скажем 01.01.2011, и в этот день счетчик был выключен..
10 KRV
 
07.08.12
11:54
странно, что никто не предложил переиндексации..
11 KRV
 
07.08.12
11:54
+(10) как бы настойчиво рекомендую.. потом лезть ремонтировать
12 kobzon
 
07.08.12
11:55
(10) Думаю, щас поставлю на тестирование и исправление базы, а вдруг.. Но это так будет долго((
13 vladko
 
07.08.12
12:17
по (6) похоже на самописку
14 Vladal
 
07.08.12
12:22
ТиИ с пересчетом служебных данных. Периодические реквизиты посыпались.
Такая картина была давно на ТиС, с периодическими реквизитами - программно созданные элементы видны в списке. но программно не читались, писали, возвращался 0. Несколько элементов вручную перезаполнил, тогда стали видны, для подчиненного справочника в 10000+ элементов не внесёшь столько вручную.
После ТиИ всё встало на свои места.
15 kobzon
 
07.08.12
12:24
Сделал ТиИ, всеравно не проводится((
16 vladko
 
07.08.12
12:28
(15) чего гадаешь? здесь только отладчиком по этому месту:
СпрСч.ВыбратьЭлементы();
       Пока СпрСч.ПолучитьЭлемент()=1 Цикл
           Если (СпрСч.ВидУслуги=ВидНачисления)и(СокрЛП(СпрСч.Наименование)=СокрЛП(НомерСчетчика)) Тогда
               Если СпрСч.ПризнакИспользования.Получить(НачМесяца(ДатаПок))=Перечисление.ДаНЕт.Да Тогда
                   ЕстьСч=1;
                   Прервать;
               КонецЕсли;
           КонецЕсли;  
       КонецЦикла;
и всё станет ясно
17 vladko
 
07.08.12
12:29
или "специалист по 1С" не знает как пользоваться отладчиком?
18 kobzon
 
07.08.12
12:31
(17)вкратце)
19 kobzon
 
07.08.12
12:54
Первый цикл проходит вроде все нормально условия выполняются, потом:
ДатаПок = '28.02.11'
Перечисление.ДаНЕт = НеизвестныйОбъект
ЕстьСч = 0
СпрСч.ВидУслуги = Холодная вода для нужд ГВ по кв.ПУ
СпрСч.Наименование = "112134"
ВидНачисления = Холодная вода для нужд ГВ по кв.ПУ
НомерСчетчика = "102134         "

видимо уже не выполняется.
Основная теорема систематики: Новые системы плодят новые проблемы.