Thread subject: АгроСофт ::: автоматизація бухгалтерського обліку :: Обговорення АС-Зарплата

Posted by metodist on 13-10-2011 18:44
#9

В зв'язку з численними зверненнями користувачів стосовно неможливості коригування кількості днів у таблиці 7 щомісячного звіту по єдиному внеску, пропонуємо пояснення ситуації і варіанти усунення проблеми.
Отже, чому так? Насправді, помилки у програмі АС-Зарплата як такої немає. Проблема полягає у зміні форматів самих таблиць звіту. А саме, опис таблиці для відображення працівників із спецстажем раніше містив інформацію про норму такого стажу (поле NORMZ). У свій час це поле зникло і тепер для експорту таблиці 7 непотрібне. З боку АС-Зарплата технологія експорту передбачає наявність серед складових бази даних шаблонного файлу, по якому і формується результуюча таблиця. Тобто, такий файл має містити усі необхідні поля. Коли зміна формату потребує нових полів, вони дописуються у вже існуючий файл шаблону. В даному випадку теж проблем з достатністю інформації немає, адже, як видно, дані нормально імпортуються в АРМ-ЗС. Конфлікт виникає тому, що зараз по старому шаблону АС-Зарплата експортує також зайве поле NORMZ. І хоча воно містить значення 0, а в екранній формі таблиці 7 в АРМ-ЗС відповідного поля немає, реально структура даних АРМ-ЗС все ще має таке поле, що дає логічну можливість запису до нього. Конфлікт виникає через цікаву інтерпретацію в АРМ-ЗС значення 0, яке приймається за значуще, замість визначення факту відсутності інформації. Таким чином, експорт/імпорт відбуваються правильно, а неможливість коригування викликана внутрішнім контролем АРМ-ЗС, що враховує значення 0 у невидимому полі норми спецстажу. Адже особливість цього контролю, що він спрацьовує лише при ручній роботі з таблицями (в той час, як при імпорті із зовнішнього файлу dbf дані записуються як є). Такий от курйоз накладання кількох недоробок різних розробників програмного забезпечення: по-перше, обидві програми ніби й змінили видимі елементи структури своїх баз даних, але залишили усі старі елементи, а по-друге, АРМ-ЗС має недосконалий механізм контролю вхідних даних і особливий погляд на інтерпретацію нульового значення цифрового поля.

Методи обходу проблеми:
1) Очевидно, що найбільш правильним є коректне встановлення періоду застосування спецстажу до посади у відповідному довіднику. В такому разі програма просто автоматично порахує кількість днів і нічого коригувати в АРМ-ЗС не потрібно.
2) Якщо вирішувати силами АРМ-ЗС.
Імпортувати дані в АРМ-ЗС як звичайно, а далі провести внутрішній експорт/імпорт. Тобто, експортувати таблицю 7 у файл dbf з самого АРМ-ЗС, а потім вже з нього імпортувати дані повторно (попередньо видаливши первинні результати імпорту з файлу сформованого АС-Зарплата). Суть цих дій у тому, що АРМ-ЗС, імпортуючи файл E04T07D, записує його вже без зайвого поля NORMZ. Недолік методу у деякій заплутаності та необхідності повторення кожного місяця.
3) Якщо вирішувати силами АС-Зарплата.
Видалити (при вимкненій програмі) з переліку файлів бази даних старий шаблон E04T07D і провести повторний експорт даних в АРМ-ЗС. Суть цього у тому, що при запуску програми буде створено новий шаблон вже без зайвого поля NORMZ. Перевага даного методу у більшій зрозумілості і одноразовому виконанні.

Зрозуміло, що рекомендується перший метод, як чисто користувацький і коректний з точки зору підготовки даних для експорту. Але оптимальним рішенням є все-таки комбінація першого та третього. Тобто, користувач в будь-якому випадку має правильно підготувати довідник, але й оновлення шаблону файлу E04T07D.dbf буде не зайвим для попередження можливих конфліктів у майбутньому.