Имя: Пароль:
1C
1С v8
Почему не увеличивается переменная?
0 Keiby
 
02.02.18
17:50
ЗУП 2.5
Документ СЗВ-СТАЖ, если больше 99 записей о стаже, то выгружается только 99. Я нашел в чем дело, но не пойму почему так. Вот исходный кусок кода:
//Нумерация записей стажа
        НомерОсновнойЗаписи = 0;
        НомерСтроки = 0;
        Для Каждого СтрокаСтажа Из ВременнаяТаблицаФизлица цикл
            
            НомерСтроки = НомерСтроки + 1;
            ТекстОшибкиСНомеромСтроки = "В строке стажа " + НомерСтроки + ": ";
            
            //Контролируем смену основной записи
            Если ЗначениеЗаполнено(СтрокаСтажа.ДатаНачалаПериода) И ЗначениеЗаполнено(СтрокаСтажа.ДатаОкончанияПериода) тогда
                //Встретили основную запись
                НомерОсновнойЗаписи = НомерОсновнойЗаписи + 1;
                НомерДополнительнойЗаписи = 0;
            ИначеЕсли Не ЗначениеЗаполнено(СтрокаСтажа.ДатаНачалаПериода) И Не ЗначениеЗаполнено(СтрокаСтажа.ДатаОкончанияПериода) тогда    
                Если НомерОсновнойЗаписи <> 0 Тогда
                    НомерДополнительнойЗаписи = НомерДополнительнойЗаписи + 1;
                ИначеЕсли СообщатьОПроблемах Тогда
                    ОбщегоНазначенияЗК.ВывестиИнформациюОбОшибке(ТекстОшибкиСНомеромСтроки + "не указаны даты начала и окончания периода!", Отказ);
                КонецЕсли;
            ИначеЕсли СообщатьОПроблемах Тогда
                Если ЗначениеЗаполнено(СтрокаСтажа.ДатаНачалаПериода) Тогда
                    ОбщегоНазначенияЗК.ВывестиИнформациюОбОшибке(ТекстОшибкиСНомеромСтроки + "не указана дата окончания периода!", Отказ);
                Иначе
                    ОбщегоНазначенияЗК.ВывестиИнформациюОбОшибке(ТекстОшибкиСНомеромСтроки + "не указана начала окончания периода!", Отказ);
                КонецЕсли;
            КонецЕсли;    
            
            СтрокаСтажа.НомерОсновнойЗаписи = НомерОсновнойЗаписи;
            СтрокаСтажа.НомерДополнительнойЗаписи = НомерДополнительнойЗаписи;
            
        КонецЦикла;    

В параметр "СтрокаСтажа.НомерОсновнойЗаписи" записывается число не больше 99, как только больше, так остается 99 и все.
1 Keiby
 
02.02.18
17:51
Из-за этого ни XML не выгружается правильно, ни печатная форма. Только 99 строк и все.
2 EgaisZavis2
 
02.02.18
17:55
Может у неё тип Число(2,0)?
3 Мимохожий Однако
 
02.02.18
17:55
Размер НомерОсновнойЗаписи какой?
4 Михаил Козлов
 
02.02.18
17:56
Ограничение разрядности (НомерОсновнойЗаписи), скорее всего.
Летунов - на мыло! Даже если работал 50 лет, то каждый год 2-жды менял работу.
5 Keiby
 
02.02.18
17:58
(3) (4)
Переменная (НомерОсновнойЗаписи) успешно растет больше 99.
6 Keiby
 
02.02.18
18:00
СтрокаСтажа.НомерОсновнойЗаписи это же получается ВременнаяТаблицаФизлица.НомерОсновнойЗаписи.
А она, в свою очередь, создается так ВременнаяТаблицаФизлица = ЗаписиОСтаже.ВыгрузитьКолонки();
7 Keiby
 
02.02.18
18:02
Точно, отладчиком посмотрел, когда выполняется "ВременнаяТаблицаФизлица = ЗаписиОСтаже.ВыгрузитьКолонки();
"
разрядность по "НомерОсновнойЗаписи" проставляется 2.
8 Keiby
 
02.02.18
18:04
Все, понял, в "ЗаписиОСтаже" тоже разрядность 2. Надо поправить
9 Keiby
 
02.02.18
18:16
Все получилось, увеличил разрядность параметра и все встало на свои места! Спасибо!
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn