<?php // Полная загрузка сервисных книжек, создан 2025-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='\
Теперь вроде всех охватили и 8-ку и 7-ку.
Красота!
Теперь баги:
В комплексной 481 и ТиС 954 выскакивает ошибка и обработка не грузится:
ОКАТООрганизации = СокрЛП(глПолучитьНалог<<?>>(«НДФЛ»).КодОКАТО);
{Z:ATCEXTFORMSPRNFORMSOBJAVL.ERT(154)}: Функция не обнаружена (глПолучитьНалог)
Можно заремить, тогда работает, но надо подшаманить, а вообще неплохо
Исправил ошибку с ОКАТО для Комплексной и ТИС.
Для конфигураций Бухглатерия и Бухгалтерия УСН ОКАТО берется из элемента справочника «Налоги и отчисления» — НДФЛ.
Однако скачал файл и снова те-же грабли что и в (1).
При проверке синтаксиса модуля в ТиС и Комплексной выдает:
ОКАТООрганизации = СокрЛП(глПолучитьНалог<<?>>(«НДФЛ»).КодОКАТО);
OBJAVL.ERT(157)}: Функция не обнаружена (глПолучитьНалог)
{D: _ТИПОВЫЕ_КОНФИГУРАЦИИТИС_950UPDATEDBEXTFORMSPRNFORMS
При проверке модуля обнаружены синтаксические ошибки!
В бухиях код работает, но в комплексной и ТиС функции глПолучитьНалог() нет, потому и валится. Как обойти не понял пока. Однако хочется универсальности.
(3) Спасибо за тестирование. Исправил ошибку… пятница, однако.
А для Бюджетной конфигурации можно?
(6) Во-первых, в бюджетке оное уже есть типовое.
Во-вторых, могу доработать свое, т.к. типовое банки не принимают, т.к. нет добивки знаком «==».
Отличная и нужная вещь
Ждем исправления указанных Вами ошибок
Большая просьба — комментировать поставленные «минусы»!
БААЛЬШОЕ ОБНОВЛЕНИЕ! (см. описание выше)
Обнаружил, что в конфигурации УСН длина комментария ограничена 100 символами и поэтому настройка может не сохраниться.
9) Сделал проверку длины Комментария на уровне метаданных. Поэтому если в конфигурации УСН длину комментария сделать неограниченной, то проблема решится.
10) Сделал автозаполнение наименования банка и счета Кредита
11) Оказывается, некоторые банки могут потребовать, чтобы номер объявления был снабжен префиксом, напр. «000». Для решения этой проблемы добавьте в objavl.ini секцию [Префикс номеров], в которой укажите требуемый вам префикс.
А разве оборотную сторону приложения № 8 не требуют заполнять?
По моему нужно добавить опись сдаваемых денег.
В консультанте она есть.
(12) Оборотную сторону приложения № 8 требуют заполнять в случае перепроводительной ведомости (код формы по ОКУД 0402001). А я тут представляю объявление на взнос наличнымии (код формы по ОКУД 0402300).
(12) Оборотную сторону приложения 8 можно взять здесьhttp://infostart.ru/projects/2445
За новую версию однозначно зачет!
Отлично!
Мне нравится!
А вот нашел небольшой косячок. Хотя наверное это только в моем случае так получается.
Дело в том, что название нашей организации очень длинное. Состоит из более 50 символов. И ведь в требовании нужно указывать его полностью. А еще если прибавить к этому слова «через ….» то получается в суммет в поле «От кого» будет у меня более 70 символов, или под другом 4 строки символов.
А у Вас по умолчанию там заложено только 2 строки для этого поля «От кого».
Поэтому у меня название организации отображается не полностью, не говоря уж о словах «через…» Поэтому приходится в печатной форме уже вручную раздвигать пошире это поле.
Поэтому вопрос: мой случай единичен? это исключение из правила? или его можно предусмотреть?
PS Я уже конечно в конфигураторе в печатной форме расширил нужные ячейки и теперь у меня все ОК, все нормально отображается.
Я просто хотел поделиться своими соображениями. Вдруг это не единичный случай
(16) Я знаю об этом косячке. Пока думаю как его учесть:
— сделать высоту строки заведомо большой (как сделали Вы);
— сделать его как поле Получатель — автоматически побираемым по высоте.
Для Предпринимателя еще бы….
(18) Сделаю сегодня…
(18) Если плюсанешь 😉
НЕ ЗАБЫВАЕМ ПЛЮСОВАТЬ РЕЙТИНГ!
ВСЕ ОСТАЛЬНЫЕ ДОРАБОТКИ Я ДЕЛАЮ НА ГОЛОМ ЭНТУЗИАЗМЕ, Т.К. МОИ ПОТРЕБНОСТИ УЖЕ УДОВЛЕТВОРЕНЫ ИМЕЮЩИМСЯ ФУНКЦИОНАЛОМ.
ОБЪЯВЛЯЮ КОНКУРС!
ТОТ, КТО ПЛЮСАНЕТ МОЮ ОБРАБОТКУ В ЮБИЛЕЙНЫЙ (50-ЫЙ) РАЗ ПОЛУЧИТ ОТ МЕНЯ БЕСПЛАТНО ЕЕ ДЛЯ КОНФИГУРАЦИИ 1С:ПРЕДПРИНИМАТЕЛЬ!
НУ И ВСЕ ПОСЛЕДУЮЩИЕ УЧАСТНИКИ ТОЖЕ ЕЕ ПОЛУЧАТ 😉
Готова обработка для предпринимателя! Плюсуйте.
А ссылка???
Самому первому тоже думаю можно!!!!;)))))
Обновление:
— Поле «От кого» масштабируется по высоте в зависимости от длина наименования плательщика
— Обработка работает теперь и в конфигурации «Учет и отчетность предпринимателя»!
Сегодня в нашем банке сказали, что есть небольшая неточность в форме документа. И больше принимать не будут пока не исправим.
Интересно — это только в нашем банке так? Или у всех?
Так вот:
они требуют чтобы было в поле сумма цифрами, например вот так: 5058-79
А в Вашей форме, которой мы пользуемся (еще раз спасибо Вам), пишется вот так: 5058-79===================
То есть если выразиться кратко, то им НЕ нужны эти символы «=» после суммы.
Аналогично и в полях «в том числе»
У кого еще так требуют банки?
(27) А как называется банк? Сделаю опцию, чтобы можно было выбирать наличие этих «=» в полях с цифрами.
Для статистики: бакн КЕДР тоже не принимает, но по другой причине — он требует, чтобы эти формы были не 1 листе, а на двух (2+1)
ОАО УралСиб
а как быть, если источников взноса 2, или даже три (торг. выручка, возврат подотч. сумм)!???
(30) Этот случай у меня не реализован, и в бесплатной версии не будет учтен. За приобретением коммерческой версии с нужными доработками обрщайся на мыло )))
http://infostart.ru/projects/2445/
Однако этот случай реализован в другой моей бесплатной разработке
(30) Случай нескльких частных сумм реализован в этой обработкеhttp://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=8489 . Но она пока доступа только для членов проклаба. Как только ее автор исправит в ней ошибки, я ее приму в клуб, и она станет доступной.
(31) Спасиб, я так и делаю!
Пользуюсь и той и той разработкой!
ОБНОВЛЕНИЕ!
— Обновил перечень кассовых символов (в файле objavl.ini)
— Сделал опцию, чтобы можно было выбирать наличие «=» в полях с цифрами (суммы).
А что сделать чтобы работало у бюджетников в конфигурации 6.0?
(35) Я не предусмотрел в своей обработке поддержку Бюджетной конфигурации. Новая форма встроена в последний релиз бюджетной конфигурации. Тем более моя обработка не делает раскладку по нескольким кассовым символам. Но я подумаю в будущем, что можно изменить.
Действительно оно есть в последнем релизе,но совершенно не отвечает требованиям банка
Приложение 6 …. — нужно галочку где-то поставить чтобы не печатать шапку.
Так все нормально.
(38) Что такое «шапка» и чем она не устраивает?
Плюс однозначно. Только у нас в банке свой завих чтобы не было добивки знаком «==» в строковом поле и через кого чтобы не было. Пришлось добавить крыжики для отключения.
(40) Пустое «через кого» у меня предусмотрено. Достаточно это поле оставить пустым, и «через кого» печататься не будет. А что касается, добивки знаком «==» в поля суммы прописью, то это заложено в форме, поэтому пока менять не буду.
Плюс. Сам подобное сделал, а потом поискал на Инфостарте ;))
Работает супер и без всяких дописок!
Большое спасибо! Всё зделано КАК НАДО! Ни каких нареканий.
Не меняла вообще ничего. Ну разве что в названии формы в правом верхнем углу шрифт уменьшила. Супер! Благодарствую
Спасибо огромное!
Не работает в конфигурации Бухгалтерия для бюджетных учреждений :((
спрСчет=СоздатьОбъект(«Справочник.БанковскиеСчета»);
{C:1SBUD6EXTFORMSPRNFORMSOBJAVL.ERT(502)}: Неудачная попытка для создания объекта (Справочник.БанковскиеСчета)
(47) Не работает и пока не будет. В Бюджете нужная форма встроена в конфигурацию без моей помощи.
Вещь очень нужная!!! Спасибо!!! а может для 8.1 тоже что-нть есть? 🙂
(49) Поищи на этом сайте, есть и для 8.1 (автор не я)
Во-первых, спасибо, все супер.
Поделюсь новым «завихом банка». Ну во первое это то что уже сделано — черточки после суммыне нужны. А второе — не принимают двойную черту после суммы прописью с разрывами вроде «=====», говорят нужна сплошная, с символом 205 в ASCII это будет выглядеть вот так «════». Не знаю прокатит ли. Маразм крепчал…
Мдаа что-то не выглядит как я хотел…
(51) Символ 205 в ASCII не прокатывает в 1С 🙁
Ну все туши свет. Что теперь туда картинку вставлять ? :))
Интересно Михаил aka mdzen с этим не сталкивался ? Как никак в одном городе живем (банк ОАО»АКИБАНК»)
(54) Да и картинку никак не вставить, ведь она должна быть привязана к ячейке, а текст в ней должен быть поверх (чтобы длина === была переменной). Такое в 77 не реализовать.
http://infostart.ru/projects/2445/
Советую приглядется к моей аналогичной разработке на Экселе, в ней я решил проблему неразрывности двойной линии:
(55) Да, насчет программной реализации все плохо.
В банке дали БизнесПак 6.0 с подправленным шаблоном 🙂 типа оттуда можно печатать, поставил, все мрачно, снес.
В сухом остатке, есть форма в Excel, сохраненная из 1С, там дорисованы линии. Сделать новое объявление: РКО в базе 1С + 2 минуты (дата, номер, сумма, сумма прописью и линии). Если перейти на твою разработку на Экселе: заполнение 30 секунд и сделать в 1С РКО. В обоих случаях все быстро, но главное в банке сегодня не заполнял вручную бумажку, закинул деньги на счет за 5 минут, вот от этого получил эстетическое удовольствие 🙂 Думаю вопрос исчерпан, victuan тебе большой сенкс 😉
Чтобы после суммы была сплошная двойная черта почему нельзя дополнить такой процедуркой:
Функция ДополнитьСтрокуЧертою(ИсходнаяСтрока, Длина, Справа = истина) Экспорт
Р = ИсходнаяСтрока;
Пока СтрДлина(Р) < Длина Цикл
Если Справа Тогда
Р = Р + Символ(9552);//819 831 8212 9552 типы строчек
Иначе
Р = Символ(9552) + Р;
КонецЕсли;
КонецЦикла;
Возврат Р;
КонецФункции
(57) Вообще-то, это для 8.1, но попробую.
(57) Попробовал. Для 7.7 это не подходит, оно и не удивительно, 7.7 не понимает Юникод.
А что вам мешает писать сразу в Excel? Или в Йоксель?
(60) Тянуть Эксель только для того, чтобы добавить черточки по необоснованной законодательно прихоти банков? Это батенька, из пушки по воробям называется. А если нет Экселя на компе?
http://infostart.ru/projects/2445/ (требует Эксель, но не требует 1с!)
Не-е, таким извратом страдать не буду. Пусть моя обработка требует 1С, но не требует Эксель или прочих ВК (типа Йокселя), и не буду ее перепозиционировать.
Специально для Экселя я сделал объявление совсем по-другому принципу:
(61) Хозяин-барин. Но меня всегда удивляет болезнь по имени «ВэКаФобия»
Можно сделать два варианта: 1я печатная форма в 1С — всегда, а после проверки наличия Exсel — дополнительная печатная форма.
(63) Я думал об этом, но пока не хочу заморачиваться этим. Возможно, позже сделаю…
Спасибо, давно не могла найти удобную форму объявления, правда спасибо!!!!
Вот решение для бюджетной конфигурации 7.7:http://infostart.ru/projects/5114/
Классно, спасибо, все работает!
Работает, в банк только не носили еще, а от меня плюс
🙂 🙂 🙂 ПЛЮС;
А есть то же самое для 8-ки (Бухгалтерия, УПП)?
(69) Поищи на этом сайте, есть и для 8.1 (автор не я)
Спасибо, нашла!!!
🙂 🙂 🙂
Поставил плюсик. Клёвая обработка. Спасибо большое автору. Правда мне пришлось чуть-чуть доработать, т.к. у меня конфигурация ТИС очень старой редации 8.7 и еще несколько раз переделанная.
Нужна была форма…..=)
Очень в тему!
Очень полезная форма, а то надоело в excel все время набивать:)
сПАСИБО ЗА РАЗРАБОТКУ, СРОЧНО ПОНАДОБИЛОСЬ, А ВРЕМЕНИ НЕ БЫЛО… ВЫРУЧИЛИ В ОБЩЕМ.
Спасибо за обработку! Вовремя выручили! Нигде больше не нашел!
Отличная разработка , спасибо огромное за разработку!Очень выручает. Если её еще немного дополнить возможностью ввода количества купюр разного номинала в дополнительную табличку,чтобы приходилось не подсчитывать в excel купюры, а выводить итоговую сумму сданной выручки сразу в этой форме-было бы совсем здорово.:).Я немного подумала, и реализовала это на основе вашей разработки и еще одной.
в ТиС ред 9,2 работает без проблем
Отлично работает в Предпринимателе, но нет кода или символа
Символ 19. Поступления наличных денег на счета индивидуальных предпри-
нимателей, а также физических лиц, занимающихся в установленном законодательст-
вом Российской Федерации порядке частной практикой, независимо от указанного в
объявлении на взнос наличными источника их поступления.
Или не нашла.
А так спасибо большое пригодилась.
(80)Из описания к обработке:
«6) Кассовый символ можно выбирать из списка возможных его значений (спасибо за это Гене). Список возможных символов можно отредактировать самостоятельно в файле objavl.ini в секции [Кассовые символы].«
Спасибо за обработку!
Спасибо автору. Очень интересная обработка.
За обработку спасибо.
Доброго времени суток, уважаемые коллеги.
Прошу помочь настроить обработку Объявление на взнос наличными. При попытке открыть как внешний отчет выдает следующее сообщение:
ВидКонфигурации=глИдентификаторКонфигурации<<?>>();
EXTFORMSOBJAVL.ERT(396)}: Функция не обнаружена (глИдентификаторКонфигурации)
В документе РКО ссылки на объявление нет (слева от кнопки Печать).
Конфигурация ТИС.
Заранее спасибо.
(85)У вас не типовая конфигурация или очень старый релиз конфигурации. Моя обработка без доработок не будет работать в вашей конфигурации.
спасибо за обработку! обнаружил небольшую ошибку, в ордере в строке получатель <Фирма для печати > в свойствах необходимо поставить (выражение) а не шаблон!
(87)Спасибо, исправил ошибку.
В т.ч. новая форма;
Работает в Бух, УСН, ТиС, ПуБ, Компл.;
Можно как вн. печатная форма для РКО, можно как внешний отчет;
Условно бесплатная.
(94) Кошки рулят,
Скачала с Вашей отсылки.
Спасибо.
Условно-бесплатная ?
В чем ограничения? Вроде выводится без ограничения.
Где-же все-же условно бесплатная?