Клиент-банк для Бухгалтерии 8.2 (БП 2.0). Гибкая настройка загрузки на основе построителя. Быстрое чтение из файла.




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2024-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='\

99 Comments

  1. Ёпрст

    Денег не дам ни копейки! ©

    Пусть телефон останется голодным.

    За креатив в описалове, плюсую.

    🙂

    Reply
  2. DSatan

    Эстер, судя по коду, каждая платежка проверяется на соответствие расширенным настройкам дважды? Это необходимо?

    Reply
  3. Kruzo

    Бухгалтерия предприятия, редакция 2.0 (2.0.23.9)

    При запуске выдает сообщение:

    Для выбранного счета не настроены параметры обмена данными

    ===

    В окне Настройка

    Обслуживаемый банковский счет —> <Объект не найден> (16:bbd7001617a8badd11dba61b30e84682)

    ===

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

    Reply
  4. Ish_2

    Эстер, Вы стали писать более раскованно и современно.

    Выставить свой телефон — мммм.. тоже современно.

    Вообщем, мне нравится.

    Но перечислить более 10 рублей — не имею возможности.

    Reply
  5. artbear

    (0) Ждем ответа на (2)

    Reply
  6. DSatan

    сейчас тоже разбираюсь с (3)

    там при открытии обработки из макета всегда подтягиваются настройки по умолчанию от автора

    Reply
  7. riop

    спасибо! давно ждал ждал для 2.0!

    но обработка пока еще сыровата:

    1. в запросе ЗапросПоискаДокумента процедуры РаспознатьДанныеВСтрокеДокумента(СтрокаДокумента) глючит здесь

    | (НАЧАЛОПЕРИОДА(ПлатежныеДокументы.Дата, ДЕНЬ)= &ДатаДок ИЛИ НАЧАЛОПЕРИОДА(ПлатежныеДокументы.ДатаВходящегоДокумента, ДЕНЬ)= &ДатаПлПоручения)

    если заменить на

    | (НАЧАЛОПЕРИОДА(ПлатежныеДокументы.Дата, ДЕНЬ)= &ДатаДок)

    то вроде работает.

    Reply
  8. riop

    2. при настройке правил загрузки тип сравнения нужно перевыбирать на «содержит». по умолчанию стоит «равно», который не установлен для сравнения. соответственно, если не выбрать содержит, то правило не сохраняется.

    Reply
  9. riop

    2. имел в виду настройку для поля «назначение платежа» и «имя контрагента»

    Reply
  10. riop

    3. в процедуре Загрузить(ДокументыКИмпорту) Экспорт перепутаны местами значения для истины и лжи:

    ДтКт=?(строИТ.Исходящий,»Дт»,»Кт»);

    нормально работает, если заменить на

    ДтКт=?(строИТ.Исходящий,»Кт»,»Дт»);

    п.с. тестирую на обработку для 8.2

    Reply
  11. artbear

    (8) Я автору давно об этом писал, на версии для БП 1.6 она говорила, что пофиксила.

    Reply
  12. DSatan

    форма отбора, процедура УстановкаРеквизитовЗначениеПриИзменении

    при выборе счета выдает ошибку из-за попытки определить счета и субконто НУ.

    это пережиток 1.6 ибо в 2.0 нет плана счетов НУ

    Reply
  13. DSatan

    (10) а мне кажется тут вроде все правильно у Эстер

    Reply
  14. Rustig

    (0) а мне нравится идея показывать свой телефон! + за новшество

    еще хотелось бы узнать сколько времени затрачено на работу => сколько возможно выставить клиенту за такую работу?

    Reply
  15. riop

    если в //УСТАНОВКА РЕКВИЗИТОВ ПО НАСТРОЙКАМ после

    Если метаоб.ТабличныеЧасти.Найти(«РасшифровкаПлатежа»)<>Неопределено Тогда

    засунуть следующий кусок, то будет работать установка ставки НДС в настройках загрузи 🙂

    Если метаоб.ТабличныеЧасти.РасшифровкаПлатежа.Реквизиты.Найти(«СтавкаНДС»)<>Неопределено

    и ЗначениеЗаполнено(СтрокаСекции.СтавкаНДС)

    Тогда

    Для каждого стро Из ОбъектДокумента.РасшифровкаПлатежа Цикл

    стро.СтавкаНДС=СтрокаСекции.СтавкаНДС;

    ЗначениеСтавкиНДС = 0;

    ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаСекции.СтавкаНДС);

    стро.СуммаНДС = Окр(СтрокаСекции.СуммаДокумента*ЗначениеСтавкиНДС/(100+ЗначениеСтавкиНДС), 2);

    КонецЦикла;

    КонецЕсли;

    Reply
  16. DSatan

    Что-то уважаемый автор молчит 🙂

    Reply
  17. DSatan

    Эстер, если включишь минимальную доработку отсюда http://forum.mista.ru/topic.php?id=557193, то сможешь смело обзывать эту обработку не БЫСТРЫЙ, а РЕАКТИВНЫЙ 🙂

    Reply
  18. bnw

    При попытке прочитать файл выдает сообщение:

    {ВнешняяОбработка.КлиентБанк.МодульОбъекта(2418)}: Ошибка при вызове метода контекста (Выполнить)

    Результат = ЗапросПоискаДокумента.Выполнить().Выбрать();

    по причине:

    по причине:

    {(12, 126)}: Не задано значение параметра «ДатаПлПоручения»

    (НАЧАЛОПЕРИОДА(ПлатежныеДокументы.Дата, ДЕНЬ)= &ДатаДок ИЛИ НАЧАЛОПЕРИОДА(ПлатежныеДокументы.ДатаВходящегоДокумента, ДЕНЬ)= <<?>>&ДатаПлПоручения)

    Reply
  19. DSatan

    (18) смотри (7)

    Reply
  20. artbear

    Временно поставил минус 🙁

    1. Автор выложила обработку, но довольно давно не реагирует на замечания.

    2. В обработке есть ошибки — не работает загрузка,

    , есть ошибки при установке правил, есть ошибки при задании номера счетов в правилах и т.п.

    Однозначно минус.

    Ждем исправления.

    ЗЫ я пока сам для себя обработку исправляю, у жены вроде как заработало.

    Reply
  21. riop

    криво работает создание договора контрагента при нажатии «создать не найденное» — всегда создает вид договора «прочее»

    для исправления:

    в модуле объекта в функции «СоздатьКонтрагента(СтрокаКонтрагент = Неопределено, ОткрыватьФорму=Истина) Экспорт»

    строки

    Если Вид=«С покупателем» Тогда



    ИначеЕсли Вид=«С поставщиком» Тогда

    заменить на

    Если Вид=Перечисления.ВидыДоговоровКонтрагентов.СПокупателем Тогда



    ИначеЕсли Вид=Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком Тогда

    Reply
  22. DSatan

    Тоже допилил под свои нужды. Зато теперь бухи пищат от счастья. 🙂

    Reply
  23. bankir1982

    Искал что-то подобное для бухгалтеров своих. Они постоянно ставят банк по фирмам (фирма занимается аутсорсингом и на обслуживании много других фирм) и эта операция занимает много времени. Надеюсь данная обработка поможет им сократить время и силы на обработку банка. Спасибо автору, плюсанул.

    Но есть большая вероятность, что придется допиливать под свои нужды.

    Reply
  24. e.kogan

    (23) Если придётся — расскажите, что именно.

    Reply
  25. artbear

    (24) Автор, имей совесть — уже все «допиливания» обсуждали с (2) по (21) 🙁

    Исправляйся

    ЗЫ к остальным разработкам вопросов нет, все отлично, но в этой публикации и отношением к ней ты на себя не похожа 🙁

    Reply
  26. e.kogan

    (25) *цензура»

    До меня только сейчас дошло, что этих комментариев я НЕ ВИДЕЛА.

    Уж не знаю почему, но какое-то время не доставлялись на почту извещения.

    Это ж мне все свои обработки сейчас перечитывать!

    Reply
  27. e.kogan

    (2) Да, проверка идёт двойная. Первичная простановка — до стандартной обработки, потом стандартная обработка, потом — в зависимости от её результатов — могут сработать иные отборы. Для нашей ситуации (определение счёта взаиморасчётов от группы, в которой находится контрагент документа) это был самый адекватный способ.

    (3) В полном описании, ссылка на которое прописана в описании обработки здесь же, об этом сказано.

    (4) Да никто и не обязывает… 😉

    (7) Спасибо, учту. Там скорее через ЕстьNull нужно, думаю. Хотя для тех, у кого эти даты совпадают, можно и приведённым образом.

    (8), (11) Вроде исправляла для строковых. Проверю.

    (10), (13) Ни от кого больше таких нареканий пока не поступало, тестовая загрузка тоже была в норме. Если кто ещё пожалуется — буду гонять на том тестовом материале, что пришлют.

    (15) Спасибо, учту обязательно!

    (17) Взяла на заметку, потестирую.

    (20) Мы-то до сих пор на 1.6, только что на 8.2 переползли, так что тестировать было не на чем и некогда — двухдневная выгрузка на тогдашнем материале прошла, и ладно.

    (21) Опять же спасибо!

    Ещё раз и всем: не отвечала, потому что не приходили извещения. Отслеживать вручную ни времени, ни сил нет.

    Reply
  28. lekaoldeg

    Ошибка! Помогите! Если оттчет работает, как описано, то супер, но пока не могу проверить, но очень бы хотелось

    {ВнешняяОбработка.КлиентБанк.МодульОбъекта(2418)}: Ошибка при вызове метода контекста (Выполнить)

    Результат = ЗапросПоискаДокумента.Выполнить().Выбрать();

    по причине:

    по причине:

    {(12, 126)}: Не задано значение параметра «ДатаПлПоручения»

    (НАЧАЛОПЕРИОДА(ПлатежныеДокументы.Дата, ДЕНЬ)= &ДатаДок ИЛИ НАЧАЛОПЕРИОДА(ПлатежныеДокументы.ДатаВходящегоДокумента, ДЕНЬ)= <<?>>&ДатаПлПоручения)

    Reply
  29. e.kogan

    (28) уважаемый, именно сейчас у меня обновляется типовая 2.0, чтобы я могла взять из последней версии КБ нормальный код.

    То, что есть сейчас — не работает, о чём писали выше. Надеюсь в течение ближайшей недели сделать, ранее не обещаю.

    Reply
  30. DSatan

    Ждем :)) А вообще огромнющее тебе спасибо. С нашими объемами (2-3 тыс. в день) бухи просто зашивались

    Reply
  31. e.kogan

    (30) Дождались 🙂

    Reply
  32. Bomba1911

    спасибо! давно ждал ждал для 2.0!

    но обработка пока еще сыровата

    Ну а в целом огромное спасибо!

    Reply
  33. Hellgga

    А кто-нибудь делал настройку по выплате зарплаты через банк?

    У меня что-то никак не получается….

    Reply
  34. Hellgga

    (33) Целый день пыталась создать Правило на основании вот этого http://www.nashe1c.ru/materials-view.jsp?id=367 (взяла за основу) и никак не получается…

    У меня БП 2.0 Проф. (УСН) зарплата перечисляется отдельными п/п на каждого сотра… 🙁

    Reply
  35. e.kogan

    (32) Что именно сыровато-то? Если вы про выбор счёта БУ — так там поправлено 😉

    (36) Можете прислать мне на почту один-два файлика выгрузки клиент-банка с такими платёжными поручениями? Если контрагенты созданы и л/с у них прописаны — не знаю, в чём ещё может быть затык.

    Reply
  36. Hellgga

    (37),(36)Спс. Завтра с работы сброшу. Постараюсь прийти пораньше и ещё покопать, пока никто не дёргает…

    Да, п/п формируются не в программе, а в Клиент-банке и из него загружаются в выписке.

    Вот, нашла более полное описание действий…http://infostart.ru/public/83702/ завтра (ой, уже сегодня!) приступлю 🙂

    Reply
  37. Hellgga

    Уфф, вроде получилось (частично)….

    Только операция дорабатывается вручную. Надо войти в каждую строку выписки и в меню Операция выбрать Перечисление зарплаты, затем выбрать реквизиты Платёжной ведомости…

    А вот интересно: в Настройках я ставлю Вид операции :Перечисление заработной платы, а выбирать всё равно приходится вручную…

    Reply
  38. e.kogan

    (40) Ведомость в любом случае придётся ставить вручную. Нет никаких реквизитов, по которым можно было бы её однозначно вычислить.

    Reply
  39. Hellgga

    (41) Ведомость — да, а вот Вид операции:Перечисление заработной платы, а потом этот вид выбирать всё равно приходится вручную уже при корректировке выписки.

    И ещё пыталась сегодня сделать перевод валюты с ТранзВалСчёта на ВалСчёт. Ну никак…

    Reply
  40. e.kogan

    Вы ставите вид операции после вида документа? Т.е. Вид документа — списание, вид операции — з/п.

    У меня нормально настраивается и загружается.

    Reply
  41. Hellgga

    Спасибо!!! А я там ещё 70 счёт подставляла…:(

    Всё получается!

    Reply
  42. metmetmet

    Огогого! Автор молодец, такую реальную штуку сделал. Я вот только думал дорабатывать, дописывать, а думаю, зайду-ка я на поисковик, не один же на свете живу, однозначто же кому-то ранее приходилось с этим сталкиваться. И о чудо! Уже все есть! Как приятно, что люди делятся своим творчеством!

    Reply
  43. e.kogan

    (45) Плюсики ставить не забываем, благодарности за экономию рабочего времени принимаются также в денежной форме на номер 8(916)9138813 😉

    Reply
  44. metmetmet

    (46) Отплюсовал 🙂 Забыл просто. Такое конечно нужно плюсовать!

    Reply
  45. metmetmet

    В модуле объекта в процедуре Загрузить в строках 3886-3892 есть опечатки по заполнению субконто с видом Статья движения денежных средств.

    Reply
  46. metmetmet

    А еще было бы здорово добавить параметры по заполнению КУДиР по всем графам.

    Reply
  47. e.kogan

    (50), (51) — какие именно опечатки? Параметры, как вы, надеюсь, понимаете, добавляются довольно просто.

    Reply
  48. metmetmet

    (52), Извиняюсь, с номерами строк я промахнулся, т.к. взял уже из измененной обработки, в общем такой кусок кода

    субСтатьиДДС=видысубБУ.Найти(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиДвиженияДенежныхСредств,»ВидСубконто»);
    Если субСтатьиДДС<>Неопределено Тогда
    номсуб=видысубБУ.Индекс(субСтатьиДДС)+1;
    Если Не ЗначениеЗаполнено(ОбъектДокумента[«Субконто»+ДтКт+номсуб])
    И ТипЗнч(СтрокаСекции.Договор)=Тип(«СправочникСсылка.ДоговорыКонтрагентов»)
    И НЕ СтрокаСекции.Договор.Пустая() Тогда
    ОбъектДокумента[«Субконто»+ДтКт+номсуб]=СтрокаСекции.Договор;
    КонецЕсли;
    КонецЕсли;

    Показать

    тут должна устанавливаться статья ДДС, а получается договор контрагента.

    А прарметры КУДиРа, конечно же для себя уже добавил, написал для информации, может кому то еще понадобиться.

    Reply
  49. e.kogan

    (53) Спасибо, исправила, сейчас выложу. Копипаст — страшная штука 🙂

    Reply
  50. Гость

    Если метаоб.ТабличныеЧасти.Найти(«РасшифровкаПлатежа»)<>Неопределено Тогда

    засунуть следующий кусок, то будет работать установка ставки НДС в настройках загрузи

    Если метаоб.ТабличныеЧасти.РасшифровкаПлатежа.Реквизиты.Найти(«СтавкаНДС»)<>Неопределено

    и ЗначениеЗаполнено(СтрокаСекции.СтавкаНДС)

    Тогда

    Для каждого стро Из ОбъектДокумента.РасшифровкаПлатежа Цикл

    стро.СтавкаНДС=СтрокаСекции.СтавкаНДС;

    ЗначениеСтавкиНДС = 0;

    ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаСекции.СтавкаНДС);

    стро.СуммаНДС = Окр(СтрокаСекции.СуммаДокумента*ЗначениеСтавкиНДС/(100+ЗначениеСтавкиНДС), 2);

    КонецЦикла;

    КонецЕсли;

    Reply
  51. e.kogan

    (55) Так это ж уже давно сделано.

    Reply
  52. airuss

    Не получается отработка правила,связанного с РКО . Если настраиваем вид документа — РКО, вид операции -взнос наличными в банк, счет учета бу -50 ,то в итоге : {ВнешняяОбработка.КлиентБанк.МодульОбъекта(2421)}: Ошибка при вызове метода контекста (Выполнить)

    Результат = ЗапросПоискаДокумента.Выполнить().Выбрать();

    по причине:

    по причине:

    {(12, 95)}: Поле не найдено «ПлатежныеДокументы.ДатаВходящегоДокумента»

    (НАЧАЛОПЕРИОДА(ПлатежныеДокументы.Дата, ДЕНЬ)= &ДатаДок ИЛИ НАЧАЛОПЕРИОДА(ПлатежныеДокументы.<<?>>ДатаВходящегоДокумента, ДЕНЬ)= &ДатаПлПоручения) ??

    Reply
  53. e.kogan

    (57) О, спасибо. Надо будет проверить, просто сейчас нам не так актуально.

    Reply
  54. e.kogan

    (57) меняете проблемную строчку на

    | (НАЧАЛОПЕРИОДА(ПлатежныеДокументы.Дата, ДЕНЬ)= &ДатаДок «+?(ОбщегоНазначения.ЕстьРеквизитДокумента(«ДатаВходящегоДокумента»,Метаданные.Документы[СтрокаДокумента.ВидДокумента]),»ИЛИ НАЧАЛОПЕРИОДА(ПлатежныеДокументы.ДатаВходящегоДокумента, ДЕНЬ)= &ДатаПлПоручения)»,»»)+»

    и всё должно работать.

    Reply
  55. airuss

    Большое спасибо за внимание и оперативность!

    С РКО есть еще камушки .

    Если поправить &ДатаПлПоручения как в (59) ,запрос не отрабатывает из-за «ПлатежныеДокументы.СчетКонтрагента.НомерСчета» Т.е. получаем :

    {(6, 21)}: Поле не найдено «ПлатежныеДокументы.СчетКонтрагента.НомерСчета»

    ПлатежныеДокументы.<<?>>СчетКонтрагента.НомерСчета КАК НомерСчета,

    PS. В правке (59) добавил скобки :

    | (НАЧАЛОПЕРИОДА(ПлатежныеДокументы.Дата, ДЕНЬ)= &ДатаДок )»+?(ОбщегоНазначения.ЕстьРеквизитДокумента(«ДатаВходящегоДокумента»,Метаданные.Документы[СтрокаДокумента.ВидДокумента]),»(ИЛИ НАЧАЛОПЕРИОДА(ПлатежныеДокументы.ДатаВходящегоДокумента, ДЕНЬ)= &ДатаПлПоручения)»,»»)+»

    Reply
  56. e.kogan

    (60) Там примерно так же поправить 🙂 Хотя и без скобок вроде должно отрабатывать, нэ?

    Reply
  57. airuss

    Йа! Благодарю !

    Это замены строк :

    |»+?(ОбщегоНазначения.ЕстьРеквизитДокумента(«СчетКонтрагента»,Метаданные.Документы[СтрокаДокумента.ВидДокумента]),»ПлатежныеДокументы.СчетКонтрагента.НомерСчета КАК НомерСчета,»,»»)+»

    |(НАЧАЛОПЕРИОДА(ПлатежныеДокументы.Дата, ДЕНЬ)= &ДатаДок )»+?(ОбщегоНазначения.ЕстьРеквизитДокумента(«ДатаВходящегоДокумента»,Метаданные.Документы[СтрокаДокумента.ВидДокумента]),»ИЛИ (НАЧАЛОПЕРИОДА(ПлатежныеДокументы.ДатаВходящегоДокумента, ДЕНЬ)= &ДатаПлПоручения)»,»»)+»

    Reply
  58. Виктор1905

    Попробовал на своих и чужих базах — обработка неверно подбирает конграгента вместо собственного банка-контрагента, который оказывает услуги (за комиссию, % за прием нала и др.).

    В файле загрузки данные банки не указывают ПолучательИНН=.

    Как исправить? Стандартная читает правильно…

    Reply
  59. e.kogan

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

    Reply
  60. Виктор1905

    Забыл сказать! В файле загрузки пустой ПолучательИНН= по собственному банку у Сбербанк Бизнес онлайн.

    Тот же Сбербанк в стандартном клиент-банке ПолучательИНН= указывает всегда! И проблемы нет.

    А по данным менеджера Сбербанка с нового года все пользователи стандартного клиент-банка будут переведены на Сбербанк Бизнес онлайн.

    Мне кажется, лучше подправить обработку под эту ситуацию, чем сотням пользователей обработки писать одни и те же правила…

    Reply
  61. Lunatik82

    А как при загрузке сделать, чтобы в поступлении убиралась галочка в КУД и Р… не ставилась, а то все суммы подряд попадают в Книгу доходов и расходов?

    Reply
  62. e.kogan

    (67) Lunatik82, первым прописать правило загрузки с условием, которое будет выполняться всегда, а в коде (емнип) формы настройки правил добавить в формирующуюся для построителя-установщика таблицу колонку соответствующего имени и типа — тогда она появится в нижней таблице, и можно будет задать ей фиксированное значение.

    Reply
  63. freebsdd

    Найдены такие глюки:



    1. При обработке, если НЕ НАЙДЕН СЧЁТ(ИЛИ КОНТРАГЕНТ) получателя, красным снизу пишет — «В информационной базе найдено несколько (число) одинаковых банковских счетов (или контрагентов)»;

    2. Если выбрал файл из клиент-банка и не тот счёт выбрал, обработка пишет: В заголовке файла указан счет (<здесь счёт>) отличный от указанного, расчеты по которому загружаться не будут! — а сампаразит, обрабатывает только первую строку по всем правилам… Если загружать выписки за несколько дней, надоедает ждать, если уже в конце дня, ошибаешься с выбором счёта и файла выписки…

    Если это не косяки, то что это?

    Кстати, позабыл написать: 1С:Предприятие 8.2 (8.2.16.368), конф: Бухгалтерия предприятия, редакция 2.0 (2.0.43.6)

    Reply
  64. e.kogan

    (69) freebsdd

    1. Не найден — среди подходящих тоже может быть не найден.

    2. А что не нравится? Программа сказала, что не так, загружать отказалась…

    Reply
  65. freebsdd

    (70)

    1. Так как, так — найдено несколько счетов (к примеру: 40702810000000000001), если он в базе отсутствует напрочь?

    1а. Я ж не написал ещё одну ВАЖНУЮ Деталь, он счёт НЕ Нашёл (или договор), а сам подставил первый попавшийся (или последний, это не остледил), итог: он подставил счётдоговор, который никак не связан с выпиской, НЕ Оставил пустым, а подставил «левый», с чем это связано?

    2. Так конечно не нравится, если счёт ошибочный, мне кажется, нужно остановить процесс полностью, верно ведь? А У меня была выписка на 2700 документов, я счёт выбрал не тот, что в выписке, так он видать в цикле остался, обрабатывал только первую строчку по всем правилам, почему он не остановился? (Сидел ждал, пока она «одумается»:))

    Reply
  66. e.kogan

    (71) freebsdd

    1. Если подставил — значит, подошёл; там не гипер-интеллектуальный контур определения, берётся первый попавшийся с нужным видом.

    2. А вот это важно, спасибо. Будет время — посмотрю. Пока времени нет, а наши бухгалтера достаточно внимательны, чтобы поставить мне такую задачу.

    Reply
  67. freebsdd

    1. Скажите, что значит — «с нужным видом»? Я думаю если счёт: 40702810000000000001, то он где угодно 40702810000000000001, так зачем подставлять какой либо другой, если он не найден в базе вообще. Это всё равно, что пришёл за хлебом, а продавщица с умным видом вручает монтировку.

    Зы: Быть может неверно выражаюсь, НОВЫЙ Счёт из выписки 40702810000000000001 — в базе НЕ НАЙДЕН, а обработка подставляет 40702810000000009999, и Так Везде.

    Предложение: Быть может сделать так — Если счёт не найден, предложить его создать. А то выходит — очень неудобно, удалять из загрузки и создавать вручную новый (много времени отнимает).

    Reply
  68. Hellgga

    (73) freebsdd, 1. у меня тоже такое встречалось….:(

    Правда, у меня выписки не такие объёмные.

    Reply
  69. freebsdd

    (72) автор?

    Reply
  70. e.kogan

    (75) freebsdd, говорю же — времени нет 🙁

    Reply
  71. freebsdd

    (76) А!.. Понято!.. Удачи!.. 🙂

    Reply
  72. freebsdd

    (76)

    Вопрос — Очень интересно, в Вашей обработке нет такой возможности, как вытащить номер и дату договора из назначения платежа, и по этим критериям искать ДоговорКонтрагента, Вы думаете это не рационально?

    Reply
  73. e.kogan

    Я думаю, что это при желании можно допилить под себя. Не у всех, знаете ли, единый формат Назначения платежа 🙂

    Reply
  74. freebsdd

    (79)

    🙂 Ну понятно, я там её во многом перепилил, допилил, планирую возможно дополнить: если договора нет (вытаскивает из назначения), то автосоздание, типа как счета в этой обработке (нужно ещё раз уточнить нужду в этом). А планируется какое либо обновление по этой обработке вообще?

    Reply
  75. b-dm

    Автор, планируете ли обновлять обработку ? 🙂

    Reply
  76. e.kogan

    (81) b-dm, да, выложу в ближайшее время.

    Reply
  77. b-dm

    А в тот же файлик положить можно ? А то я вчера скачал старую версию , а теперь и за новую нужно будет $ 🙂 Ведь все будут качать только новый файлик 🙂

    Reply
  78. e.kogan

    (83) b-dm, нет, это не имеет смысла. Затирать старую версию, которая ещё может кому-то понадобиться, я точно не буду.

    Reply
  79. buy_sale

    Здравствуйте, а поl управляемые формы будет версия ? И для бухгалтерии 3.0 тоже. Можно уже и за деньги ))

    Reply
  80. e.kogan

    (85) buy_sale, будут заказчики — будет и обработка 🙂 я не против, но чисто ради искусства делать времени нет.

    Reply
  81. xten

    Огромное спасибо, за Вашу обработку!!! Функционал — супер! Как раз новая финансовый директор захотела чтобы Списания с расчетного счета шли на выбранный ею бухгалтерский счет))

    Reply
  82. e.kogan

    (87) xten, спасибо можно слать в финансовом выражении на указанный номер телефона 🙂

    Reply
  83. xten

    ок ))

    Reply
  84. Ele1234567

    Стоит посмотреть.

    Reply
  85. b-dm

    В Публикации вы бы скриншоты добавили чтоли 🙂 вообще неясно как она работает и что делает, а таке что Вы обновили в итоге 🙂

    Reply
  86. e.kogan

    (91) b-dm, в публикации есть ссылка на предыдущую версию. Доработок относительно типовой с того момента не прибавилось.

    Reply
  87. demon_infernal

    Спасибо, отличная обработка.

    Но у меня нормально заработало, только когда поменял в стр.4765

    стро.Исходящий=Ложь;

    на

    стро.Исходящий=Истина;
    Reply
  88. logdog

    (93) demon_infernal, что за ошибка была исправлена этим изменением?

    Ибо есть ошибка в обработке, когда она сбрасывает все сохраненные значения…

    Reply
  89. baluba

    А для бухгалтерии 3.0 где есть?

    Reply
  90. logdog

    Да, тоже жду для 3.0

    Reply
  91. e.kogan

    (95) baluba, (96) logdog, пока нету, ждём, когда наши неторопливые бухи осознают необходимость перехода…

    Reply
  92. baluba

    я бы на их месте, точно не торопился бы. Пока от 3.0 негатив, правда валютные операции делает нормально, хотя и там косяки вылезают

    Reply
  93. logdog

    (97) возможно уже очень скоро:

    О прекращении поддержки редакции 2.0 «1С:Бухгалтерии 8»

    http://taxcom.ru/products/product1C/chandge_2_0/

    Reply
  94. e.kogan

    (99) logdog, я в курсе…

    Reply
  95. logdog

    (97) всё еще не перешли? 🙂

    Reply
  96. e.kogan

    (101) logdog, представьте себе, да. Всё надеюсь, что кому-то из клиентов потребуется.

    Reply
  97. prost_white_one

    Подскажите пожалуйста, при загрузки платежки время можно выставлять? (по умолчанию стоит 0:00:00)

    Reply
  98. e.kogan

    (103) Такого не предусматривалось. А в каком формате нужно? Все на какую-то точку? Все один за другим со сдвигом Х от какой-то точки?

    Reply
  99. prost_white_one

    Удобна было бы, концом дня допустим 18:00:00 в место по умолчанию 0:00:00

    Reply

Leave a Comment

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