Объявление

Свернуть
Пока нет объявлений.

Письма с превышением уплаты за год

Свернуть
X
  • Фильтр
  • Время
  • Показать
  • Сортировать
  • Упорядочить по
Очистить всё
новые сообщения

    Сообщение от lubezniy Посмотреть сообщение
    Этого не понял - почему смысла нет?
    Хотя да, нужно сохранять всегда. Можно "сохранить как" куда-нибудь, а в следующие разы зачем-то пожелать "сохранять как" в TEMP.
    Я вообще-то предполагал, что вы сделаете "Путь для формирования протоколов" по аналогии с "Путь к файлам ПФР". Но "сохранить как" даже удобнее, кроме выбора папки можно сразу имя изменить, что полезно, если нужно собрать в одном месте несколько разных протоколов по одному страхователю.

    Комментарий


      Сообщение от vk65 Посмотреть сообщение
      Я вообще-то предполагал, что вы сделаете "Путь для формирования протоколов" по аналогии с "Путь к файлам ПФР". Но "сохранить как" даже удобнее, кроме выбора папки можно сразу имя изменить, что полезно, если нужно собрать в одном месте несколько разных протоколов по одному страхователю.
      Я не хочу делать путь именно для формирования протоколов, т. к. в этом случае нужно обрабатывать дополнительно ошибки, связанные с отсутствием носителя (вынутая флэшка), жестоким админом и прочими пользовательскими выкрутасами. С остальным к версии, думаю, разберусь.

      Комментарий


        Сообщение от lubezniy Посмотреть сообщение
        Я не хочу делать путь именно для формирования протоколов, т. к. в этом случае нужно обрабатывать дополнительно ошибки, связанные с отсутствием носителя
        Согласен, при save as недоступные устройства просто не будут отображаться.
        Есть ещё одна небольшая проблема. Попробуйте запустить обработку с выводом в Excel и открытием протокола. После этого, не трогая Excel, ещё раз запустите обработку.

        Комментарий


          Сообщение от vk65 Посмотреть сообщение
          Есть ещё одна небольшая проблема. Попробуйте запустить обработку с выводом в Excel и открытием протокола. После этого, не трогая Excel, ещё раз запустите обработку.
          Даже не проверяя, заранее знаю, что будет. Но путь для решения тут, боюсь, неоднозначен.

          Комментарий


            Сообщение от lubezniy Посмотреть сообщение
            Даже не проверяя, заранее знаю, что будет. Но путь для решения тут, боюсь, неоднозначен.
            Мне кажется, нужно что-то типа:
            {$I-}
            rewrite (f);
            if IOResult <> 0 then ShowMessage('Невозможно создать файл') else
            begin
            ...
            end;

            Комментарий


              на мой взгляд это не существенно, закройте файл с результатами проверки и продолжайте проверять

              Комментарий


                Сообщение от Валерий Ж Посмотреть сообщение
                на мой взгляд это не существенно, закройте файл с результатами проверки и продолжайте проверять
                Вряд ли сообщение из серии I/O Error 32 побудит обычного пользователя выполнить указанные действия. Изменения я внёс (правда, несколько по-другому) и проверил, но версия будет позже.

                Комментарий


                  Сообщение от lubezniy Посмотреть сообщение
                  Вряд ли сообщение из серии I/O Error 32 побудит обычного пользователя выполнить указанные действия.
                  Лично меня неожиданные сообщения об ошибках побуждают по меньшей мере перезапустить программу, а ещё лучше - перезагрузить комп.
                  Тем более, это сейчас не так страшно. А вот если бы процесс формирования шёл минут 40...
                  Изменения я внёс (правда, несколько по-другому) и проверил, но версия будет позже.
                  В принципе, правильнее всего было бы выдать сообщение с предложением закрыть Excel, а затем сделать ещё одну попытку создания файла.

                  Комментарий


                    Виктор, предлагаю дополнить Вашу программу проверкой на превышение предельной величины взносов с начала года. CheckXML проверяет но только в пределах отчётного периода.
                    Последний раз редактировалось OlegTT; 28.07.2011, 17:42.

                    Комментарий


                      Сообщение от OlegTT Посмотреть сообщение
                      Виктор, предлагаю дополнить Вашу программу проверкой на превышение предельной величины взносов с начала года. CheckXML проверяет но только в пределах отчётного периода.
                      Превышение считать суммарно по всем кодам тарифа?

                      Комментарий


                        Сообщение от lubezniy Посмотреть сообщение
                        Превышение считать суммарно по всем кодам тарифа?
                        Да, думаю это лучше.

                        Комментарий


                          Версия обновлена. Помимо оптимизации предобработки XML, добавлены выявление застрахованных лиц, уволенных (согласно дате последнего периода стажа) в предыдущих периодах, по которым хотя бы частично не погашалась задолженность, и контроль превышения предельной суммы базы для начисления взносов (считается стандартно: начисленную сумму делим на тариф, результат плюсуем к тому, что уже было в течение этого года, в случае превышения 415000 в 2010 г. или 463000 в последующих годах ругаемся). Неудачные результаты этих действий выводятся в специально добавленную графу примечаний в таблице сотрудников.

                          Комментарий


                            Сообщение от lubezniy Посмотреть сообщение
                            Помимо оптимизации предобработки XML,
                            Виктор, мне кажется, здесь должно быть немного не так:

                            Код:
                            i1 := i - 1;
                            while (s [i1-1] = #32) and (i1 > 2) do Dec (i1);
                            или i1 := i, или s [i1] = #32, иначе через 1 символ перескакивает.
                            А второе условие будет выполняться всегда, кроме случая "< >" в начале файла.

                            Комментарий


                              Сообщение от vk65 Посмотреть сообщение
                              Виктор, мне кажется, здесь должно быть немного не так:

                              Код:
                              i1 := i - 1;
                              while (s [i1-1] = #32) and (i1 > 2) do Dec (i1);
                              или i1 := i, или s [i1] = #32, иначе через 1 символ перескакивает.
                              А второе условие будет выполняться всегда, кроме случая "< >" в начале файла.
                              Смотрел ещё когда оптимизировал и остановился на том варианте, на котором всё работало и не вылетало. Раньше было так и работало, хотя в проверочном комплекте пробел был только один. Вот из предыдущей версии:
                              Код:
                              i := Pos (' >',s);
                              while i <> 0
                               do begin
                                     s := Copy (s,1,i-1) + Copy (s,i+1,Length (s)-i);
                                     i := Pos (' >',s);
                                   end;
                              А второе условие - страховка от повреждённых файлов.

                              Комментарий


                                Сообщение от lubezniy Посмотреть сообщение
                                Смотрел ещё когда оптимизировал и остановился на том варианте, на котором всё работало и не вылетало.
                                Насколько я понимаю, этот код был добавлен для удаления группы пробелов. Если будет такая строка: "<TAG#32#32>", после выполнения поиска в i будет позиция второго пробела, в i1 - позиция первого пробела, а s[i1-1] выдаст букву G, т.е., два пробела за один проход не удалятся. В случае, если пробелов три и более, будет срабатывать нормально.
                                А вылетать, естественно, не будет - просто не будет оптимизации для данного случая.
                                А второе условие - страховка от повреждённых файлов.
                                В i1 - позиция от начала файла, следовательно i1 будет равно двум только в самом начале файла. Поэтому я не понял, в чём заключается страховка.

                                Комментарий

                                реклама

                                Свернуть
                                Обработка...
                                X