Обработка для тестирования внешних печатных форм для конфигураций 1С: Предприятия 8.2/8.3 с использованием БСП (Управляемое приложение) (версия 1.3.7)




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2026-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

96 Comments

  1. rasswet

    а если без БСП, работать не будет?

    Reply ↓
  2. Поручик

    Для конфигураций вида УТ 11. Она как раз построена с использованием БСП. Какие есть ещё конфы, не знаю.

    Reply ↓
  3. IgorWeiss

    В УТ 11 работает, в УНФ и ДО нет….

    Reply ↓
  4. Поручик

    Ну извиняй, нет у меня их.

    В чём выражается нерабочесть в УНФ? Там используется БСП версии 1.0.5, а я со свежаком работаю.

    Reply ↓
  5. Sharloc

    в Комплексной 1.1 вылетает с ошибкой

    {Форма.ОсновнаяФорма.Форма(79,29)}: Переменная не определена (ДополнительныеОтчетыИОбработки)

    ПолноеНазначениеЗначение = <<?>>ДополнительныеОтчетыИОбработки.ПолучитьПолноеНазначениеПоВидуДополнительнойВнешнейОбработки­(ВидОбработки);

    а жаль … 🙁

    Reply ↓
  6. Поручик

    (5)

    Похоже на то, что обработка пока только для УТ 11 и, возможно, УНФ. Знать бы, почему в (3) не работает.

    Для остальных конвертируйте в 8.2. обработку от poppy

    http://infostart.ru/projects/833/

    Reply ↓
  7. Поручик

    Теперь работает и в УНФ. В редакции 1.2 прикрутили механизм внешних (дополнительных) печатных форм

    Reply ↓
  8. Поручик

    В ожидаемой в конце февраля — начале марта текущего года Рознице 2 (в режиме управляемого приложения) тоже работает.

    Reply ↓
  9. piffoff

    Спс. Пригодилась пару раз

    Reply ↓
  10. kr_andr

    Спасибо

    Reply ↓
  11. m818rt

    Для печати ценников пойдёт? а то в УТ 11 с печатью проблема (поля, размер — всё сбрасывает на 0)

    Reply ↓
  12. Поручик

    (12) Не знаю, попробуй сам.

    Reply ↓
  13. angler225

    Загружаю пример внешней печатной формы из Документооборота, выдает сообщение ‘Возможно, обработка (отчет) устарела или не является дополнительной:, хотя эта обработка подключается нормально.

    Reply ↓
  14. Поручик

    (16) И что дальше?

    Reply ↓
  15. angler225

    (17) А ничего, и тишина. Обработка не создается. Версия платформы 8.2.14.537.

    Reply ↓
  16. Поручик

    (18) Ну нет у меня Документооборота. Разбирайтесь сами.

    Reply ↓
  17. Поручик

    (20) Заголовок описания.

    Reply ↓
  18. Поручик

    Обновление

    Переработан интерфейс обработки.

    [+] просмотр списка внешних печатных форм.

    [+] возможность регистрации печатной формы в справочнике «Дополнительные отчеты и обработки».

    [+] проверка файла при выборе на принадлежность к печатным формам.

    Reply ↓
  19. Поручик

    Добавлена поддержка методов выполнения команд печати внешних печатных форм: Открытие формы, вызов клиентского метода.

    Reply ↓
  20. Поручик

    Обработка адаптирована для Библиотеки стандартных подсистем последних релизов

    Reply ↓
  21. Mx00

    Спасибо, очень пригодилась 🙂

    Reply ↓
  22. alexander_prok

    А не пробовали просто открыть ВПФ в конфигураторе и в режиме отладки напечатать стандартным способом (БСП)? Эффект тот же. 😉

    Reply ↓
  23. RSBIR

    Решил протестить обработку на Бухгалтерия 3.0

    Результат при открытии формы:

    {Форма.ОсновнаяФорма.Форма(383)}: Метод объекта не обнаружен (ПолучитьПолноеНазначениеПоВидуДополнительнойВнешнейОбработки­)

    ПолноеНазначениеЗначение = ДополнительныеОтчетыИОбработки.ПолучитьПолноеНазначениеПоВидуДополнительнойВнешнейОбработки­(ВидОбработки);

    Дальше смотреть не стал. 🙁

    Reply ↓
  24. Поручик

    (29) Ну не знаю. Расширенный синтаксис-контроль ошибок не выдаёт, за исключением одного предупреждения о возможно ошибочном методе, но оно обрабатывается. При открытии ошибок тоже нет.

    БП 3.0.18.9.

    Подсистема дополнительных обработок в БСП уже давно кардинально не меняется.

    Reply ↓
  25. RSBIR

    Тестил на релиз 3.0.19.27

    Reply ↓
  26. Поручик

    (31) Действительно, в БП 3.0.19.27 уже другая БСПятина. Там такого метода нет, вообще. Вот ведь гады! Was twaren sie?

    Буду другую делать.

    Reply ↓
  27. Поручик

    (31)

    Обновление. Текущая версия 1.2.0

    [+] обработка адаптирована для использования с релизами БСП линии 2.1.3

    Reply ↓
  28. RuslanZ

    Аналитика: Документооборот выдает: «Возможно, обработка (отчет) устарела или не является дополнительной». Версия БСП 1.1.3.1. На старых версиях не работает?

    Reply ↓
  29. Поручик

    (34) Тему с начала читаем. Вдумчиво. По строкам.

    Reply ↓
  30. RuslanZ

    (35) понял. А мне все казалось, что уже видел ответ на свой вопрос, но невнимательно просмотрел и не заметил.

    Reply ↓
  31. Поручик

    (36) Если хотите, за 500 рублей могу заняться вопросом. От вас демо-база документооборота. Я знаю где обработка спотыкается, но не знаю отчего.

    Reply ↓
  32. MaxS

    Печатная форма может открываться как форма.

    Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(«2.1.3.22»);
    …
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    …
    

    Тогда в обработке тестирования как минимум нужно сделать так:

    &НаКлиенте
    Процедура ВыполнитьОткрытиеФормыОбработки(ВызовКлиентскогоМетода = Ложь)
    
    //ПараметрыОбработки = Новый Структура(«ИдентификаторКоманды»);
    ПараметрыОбработки = Новый Структура(«ИдентификаторКоманды, ДополнительнаяОбработкаСсылка, ИмяФормы, КлючСессии»);
    ПараметрыОбработки.ИдентификаторКоманды = ИдентификаторКомандыОбработки;
    
    ОбъектыНазначения = Новый Массив;
    ОбъектыНазначения.Добавить(Объект.СсылкаНаОбъект);
    ПараметрыОбработки.Вставить(«ОбъектыНазначения», ОбъектыНазначения);

    Показать

    Reply ↓
  33. Поручик

    (38) Как будто этого нет. Скачают старьё с какой-нибудь файлопомойки, потом мне втирают.

    Reply ↓
  34. Поручик

    Обновление. Текущая версия 1.2.1

    [+] обработка адаптирована для использования в клиент-серверных базах.

    Reply ↓
  35. Поручик

    (34) По-моему, эта ошибка связана с тем, что база документооборота у вас клиент-серверная.

    Reply ↓
  36. MaxS

    (39) Вы вынудили меня второй раз скачать вашу обработку, чтобы убедиться, что высказывание (38) верное.

    Некрасиво поступаете.

    Хотел помочь в доработке, привёл готовый код, но столкнулся с грубостью в ответ. Жалко тратить Вас своё время.

    Reply ↓
  37. Поручик

    (42) Пальцы отвалились или маней жалко? Мог бы с сайта автора скачать, все мои работы там есть.

    Reply ↓
  38. Новиков

    Скачал обработку, и столкнулся с такой проблемой:

    База файловая. Точка останова во внешней обработки стоит, сама внешняя обработка открыта.

    Дотрейсиваю до ВыполнитьСерверныйМетодОбработки в данной отладочной обработке, все хорошо. Дохожу до кода:

    Попытка
    ВнешняяОбработка.Печать(ОбъектыНазначенияМассив, КоллекцияФорм, ОбъектыПечати, ПараметрыВывода);
    Исключение
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
    НСтр(«ru = ‘Ошибка печати: ‘») + КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
    Возврат;
    КонецПопытки;

    Становлюсь на ту строчку, где идет обращение к экспортной процедуре внешней обработки Печать() и! И почему то в эту процедуру захода нет. Вижу, что те глобальные процедуры, которые вызываются из нее — в общих модулях — трейсяться, но сама внешняя обработка вообще не открывается и по точкам остановам внутри нее — остановок нет.

    Может бы Поручик, любезно порекомендовал — куда копать?

    Reply ↓
  39. Поручик

    (44) Или никуда не копать или взять попробовать новый файл. Если результатов не будет, забиваем и ждём, пока я придумаю, что-нибудь другое. Забесплатно ждать можно долго.

    Reply ↓
  40. Поручик

    (42) Этот готовый код устарел на год, новые версии надо скачивать

    Reply ↓
  41. Новиков

    (45) да собственно, я последний файл и брал 🙂 Более того, какая-то из Вашей предыдущей версии, работала. И я даже ей пользовался. Видимо, за прошедшее время, что-то изменилось.

    Ну не страшно. Я под себя вашу обработку допилил уже, все открывается. Насколько я смог по коду разобрать, у вас универсально и под файловую и под клиент-серверную базу. Я просто под файловую жестко допилил, все заработало.

    В любом случае, за ваш труд спасибо!

    Reply ↓
  42. Поручик

    (47) С универсальностью облажался. На клиент-серверной такая же ерунда. Если кто-то что-то предложит вменяемое, дам пряник.

    Reply ↓
  43. Поручик

    Вернул всё назад.

    Для отладки в клиент-серверном варианте следует использовать папку, доступную для учетной записи пользователя сервера 1С:Предприятия.

    Reply ↓
  44. Поручик

    Исправлена незамеченная ошибка. Странно, что никто не сообщил. Всем, как всегда, всё равно.

    Reply ↓
  45. Поручик

    Исправлена отладка печатных формы с методом использования «ОткрытиеФормы». Не передавались ссылки на объект для печати и ссылка на печатную форму в ИБ.

    Reply ↓
  46. Hi-Hightower

    Спасибо! Работает. очень пригодилась.

    Reply ↓
  47. Goruch

    (59) Сурово.:)))

    Честно говоря, раньше мучился с этими доп. печатными формами и ее отладками. А оказывается одним кликом мыши это все легко решается.:)))

    Reply ↓
  48. realmrak

    Спасибо, помогла. Порядок использования действительно важен)

    Reply ↓
  49. Alister

    Пользовался подобной обработкой для обычных форм, поэтому очень рад, что нашел такую для управляемых, автору большое спасибо за труд.

    Reply ↓
  50. Поручик

    Обновление. Текущая версия 1.2.6

    [+] исправление некоторых ошибок при работе с БСП 2.1.3 и выше

    Reply ↓
  51. ilonnaa

    Подскажите последняя версия работает?

    Reply ↓
  52. ilonnaa

    А блин читаю не внимательно ветку. Прошу прощения! Спасибо автору за прекрасную обработку! Очень нужна!

    Reply ↓
  53. Поручик

    (74) Если нужна, купите у меня маней и скачайте.

    Reply ↓
  54. ilonnaa

    (75) Как купить? Какие цены?

    Reply ↓
  55. Поручик

    (76) Сто рублей на телефон и дам вам 10 маней. Скачаете сами, что хотите.

    Reply ↓
  56. ilonnaa

    (77) как с вами связаться?

    Reply ↓
  57. Поручик

    (78) Через личные сообщения

    Reply ↓
  58. michael2006

    Пробовал обработку на конфигурации УНФ.

    Печать в шаблон Microsoft Word не отлаживает…

    Пробовал и так и сяк.

    Reply ↓
  59. Поручик

    (80) 500 рублей и займусь вашей проблемой. У меня быстро всё отладит.

    Reply ↓
  60. popro

    подскажите что означает «Отладка печати в этой папке не доступна. Используйте папку, доступную для учетной записи пользователя сервера 1С:Предприятия.» как определить требуемую учетную запись сервера?

    Reply ↓
  61. popro

    это учетная запись от имени которой запущена служба ragent?

    Reply ↓
  62. Поручик

    (82) Посмотреть параметры работы сервера 1С, от какого пользователя он работает. Как правило, это локальная учетная запись USER1CV82 или что-то типа того.

    Reply ↓
  63. Поручик

    (83) или служба ragent.

    Reply ↓
  64. forever-lilya

    Можно отладить:

    1. Открыть внешнюю печатную форму (обработку, отчет и т.д.) в режиме конфигуратора

    2. Добавить в начало модуля внешней печатной формы (обработка, отчет и т.д.) какую-либо стандартную процедуру или функцию из общего модуля. Например, ОбщегоНазначения.ПустаяДата().

    3. Поставить точку останова на эту процедуру или функцию из общего модуля

    4. В итоге «про шагая» стандартную процедуру (функцию) вы попадете в свой внешний отчет (обработку, печатную форму).

    Reply ↓
  65. AleksSF

    А можно в СсылкаНаОбъект сделать множественный выбор.

    Ведь уравляемых формах можно печатать несколько объектов из списка.

    Я думаю, что это было бы полезно.

    Reply ↓
  66. Поручик

    (90) Наверное, можно. Будет стоить 500 рублей.

    Reply ↓
  67. AndyInfo2012

    Отлично работает. Спасибо автору. И вопрос (может, не совсем в теме): как сделать, чтобы внешние печатные формы появлялись сразу после нажатия кнопки Печать вместе со штатными (сейчас после нажатия Печать нужно выбирать Дополнительные печатные формы…, потом нужную, потом Выполнить) ? Платформа 8.2.19.76, УТ 11.1.2.19 — если это имеет значение.

    Reply ↓
  68. Поручик

    (92) В УТ 11.1 вашего релиза только если обновить БСП последнего на сегодняшний день релиза. То, что вы хотите, есть в БП 3.0.

    Reply ↓
  69. Поручик

    (94) Потому что файл надо скачивать отсюда и читать описание.

    Reply ↓
  70. l-Rain

    Спасибо большое, очень полезная обработка, одна из немногих, в которой ничего не надо допиливать после того, как скачала. Большой плюс!

    Reply ↓
  71. bird21

    Пригодилась. Полезная штука.

    Reply ↓
  72. buval

    Плюс за качественную обработку

    Reply ↓
  73. unichkin

    (89) forever-lilya, платформа 8.3.4.389 — не помог ваш способ. Отладка пропускает код самой обработки, позволяя видеть только функции конфы.

    Reply ↓
  74. virtyoz

    (89) Пробовал и на платформе 8.2.16 и 8.3.4, в модуль обработки так и не зашло, отладка стопорится на конце функции общего модуля.

    Reply ↓
  75. Поручик

    Версия 1.2.7.

    [+] исправлены некоторые моменты для последних версий БСП и платформы 8.3

    Reply ↓
  76. zspr

    Спасибо автору! Отличная обработка. Эконимит много времени и нервов!

    Reply ↓
  77. markovki

    Пробую на БП 3.0

    Платформа 8.3.4.365, в модуль формы попадаю, в модуль самой обработки не заходит, так и должно быть?

    Подскажите, что со своей стороны можно сделать, чтобы исправить?

    Reply ↓
  78. Поручик

    (103) Не знаю. Всё описано на странице.

    Reply ↓
  79. makaorel

    Спасибо большое очень пригодилась обработка!

    Reply ↓
  80. Region102

    УТ 11.1.6.17, платформа 8.3.5.924 не работает.

    Reply ↓
  81. Поручик

    (106) И в чём выражается нерабочесть?

    Reply ↓
  82. Поручик

    (106) 8.3.5.924 платформа тестовая, так что ваши проблемы.

    Reply ↓
  83. lk78

    УТ 11.1 (8.3.4.482) не работает, не заходит в модуль обаботки на точках останова

    Reply ↓
  84. Поручик

    (109) Выкиньте её, если читать не умеете.

    Reply ↓
  85. lk78

    объясните ???

    Reply ↓
  86. lk78

    так может она вообще не рабочая, зачем тогда людям стартмани тратить на вашу обработку …

    Reply ↓
  87. stas1kbob

    а для внешнего отчета будет работать?

    Reply ↓
  88. ZhokhovM

    (109) lok78, если не заходит в модуль обработки на точках останова, попробуйте перезапустить конфигуратор.

    Reply ↓
  89. the1

    (89) forever-lilya, это было возможно на обычных формах, на управляемых такое не прокатит

    Reply ↓
  90. GeterX

    При выборе файла внешней печатной формы возникает ошибка:

    {(1)}: Метод объекта не обнаружен (НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта)

    ДополнительныеОтчетыИОбработки.НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта(ВидОбработки)

    Конфигурация: Зарплата и кадры государственного учреждения, редакция 3.0 (3.0.24.144)

    Reply ↓
  91. Поручик

    (172) Ничего не скажу. Похоже, в ЗиК для государственного учреждения какая-то своя БСП, если она там вообще присутствует.

    Все конфы для гос. учреждений отдельная песня.

    Reply ↓
  92. lisav

    За обработку спасибо, но она перестала работать в УТ:

    При выборе файла внешней печатной формы возникает ошибка:

    {(1)}: Метод объекта не обнаружен (НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта)

    ДополнительныеОтчетыИОбработки.НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта(ВидОбработки)

    Конфигурация: Управление торговлей, редакция 11.2 (11.2.3.95)

    Reply ↓
  93. Поручик

    (185) Так скачайте текущую версию.

    Reply ↓
  94. pentanom

    Конфигурация УТ 11.3.4.124

    При открытии выдается ошибка:

    {(1)}: Метод объекта не обнаружен (НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта)

    ДополнительныеОтчетыИОбработки.НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта(ВидОбработки)

    Этой функции (процедуры) я вообще нигде не нашел 🙁

    Reply ↓
  95. vyacheslavb

    При выборе файла внешней печатной формы возникает ошибка:

    {(1)}: Метод объекта не обнаружен (НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта)

    ДополнительныеОтчетыИОбработки.НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта(ВидОбработки)

    Зарплата и управление персоналом, редакция 3.1 (3.1.8.216)

    Reply ↓
  96. Поручик

    (245) Не буду спорить. Какая там БСП? Я ЗУП ни разу в глаза не видел.

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *