[БП 3.0] Свертка БП 2.0 или БП 3.0 документами "Ввод начальных остатков" в БП 3.0 beta




Принцип обмена данными из 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='\

99 Comments

  1. albert

    Спасибо, попробую.

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

    Reply ↓
  2. Alex_E

    (1) albert, Штатная (тиовая) свёртка никуда не делась, это сделана внешней обработкой, или я как-то не так понял вопрос?

    Отличия от штатной этой аналогичны описанным в http://infostart.ru/public/118486/ :

    1. Штатная (типовая) делает не документы ввода остатков, а операции, например, по одному основному средству будет несколько операций (отдельно по 01 счету, отдельно по 02, отдельно по каждому регистру сведений), исправить что-то довольно таки хлопотно. Эта свёртка формирует документы Ввод остатков (ВНО), где исправлять ошибки гораздо удобнее;

    2. После Штатной свёртки много времени занимает удаление помеченных на удаление документов, причем после её завершения, с высокой долей вероятности, останется куча помеченных на удаление документов, на которые есть ссылки. С этими документами то же есть засада, если их оставить в таком виде — если нужно будет удалить что то из текущего периода время открытия окна удаления опять будет значительным. Решение есть, но это опять требует время… В этой ничего удалять не надо, документы аналитики переносятся, числяться проведёнными, но движений не делают (устанавливается ручная корректировка, или можно перенести Документами рассчетов с котрагентами, кроме счетов-фактур).

    3. Штатная свёртка оставляет справочники в том виде, в каком они есть на момент свёртки, в этой можно перенести все справочнике, можно по ссылкам

    ….

    это коротенько, подробнее в прошлой свёртке))))

    Reply ↓
  3. albert

    (2)

    я не про то, прошлую обработку то я хорошо знаю)

    «Старая» обработка в той же ИБ формировала документы ВНО (сейчас же только режим переноса по ОЛЕ ?)

    Reply ↓
  4. Alex_E

    (3) albert, Да, в исходной базе ничего не формируется — хлопотно очень в 2.0 и 3.0 выдумывать документы))))

    Reply ↓
  5. kuza_87

    Спасибо за шикарную обработку. У меня такой вопрос: есть база на бухгалтерии 1.6. Мне нужно перенести из неё остатки на начало года+обороты. Вашей обработкой можно добиться этого результата или лучше сперва перенести данные в бух 2.0, а потом уже пользоваться вашей обработкой. С бухгалтерией 1.6 никогда особо не работал, моя карьера началась со 2-й версии, поэтому не знаю особо различий между ними.

    Reply ↓
  6. Alex_E

    (5) kuza_87, Попробовать можно, весь вопрос в том, насколько в 1.6 различаются реквизиты справочников и документов… Времени много не займёт, но что получится не знаю)))

    Reply ↓
  7. Borisych

    (1) albert, мною разработана свертка БП 3.0 созданием документов «Ввод остатков». Свернуто более десятка баз — как типовых, так и с жестоко переписанной конфигурацией.

    http://infostart.ru/public/379727/

    Reply ↓
  8. Alex_E

    (7) Borisych, и чего, мне убрать публикацию или просто клиентов сманиваем? 🙂

    Reply ↓
  9. Krez

    Первая проблема с которой столкнулся — некорректно обрабатываются остатки по иерархическим ОС.

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

    Reply ↓
  10. Alex_E

    (9) Krez, Удивительное рядом — все справочники переносятся по одному алгоритму — если Родитель имеет Родителя, то переносятся они последовательно… Сразу не вспомню, может для переноса ОС из 2.0 использован другой алгоритм? Я посмотрю — отпишусь.

    Reply ↓
  11. Alex_E

    (9) Krez, Вот кодпереноса стандартных реквизитов,одинаковый для всех справочников и документов:

    //Перенос стандартных реквизитов
    Для Каждого стрCOM Из РеквCOM.Метаданные().СтандартныеРеквизиты Цикл
    Если стрCOM.Name = «Ссылка» ИЛИ стрCOM.Name = «Предопределенный» ИЛИ стрCOM.Name = «ЭтоГруппа» ИЛИ стрCOM.Name = «ИмяПредопределенныхДанных» Тогда Продолжить КонецЕсли;
    Попытка
    Если ПримитивныйТип(РеквCOM[стрCOM.Name]) Тогда
    НовОбъект[стрCOM.Name] = РеквCOM[стрCOM.Name];
    ИначеЕсли Коннект.XMLСтрока(РеквCOM[стрCOM.Name]) <> _СтрокаXML Тогда //Владелец у договора тот же самый контагент, уже записан это было — который ещё не записан
    НовОбъект[стрCOM.Name] = _ПеренестиРеквизит(РеквCOM[стрCOM.Name]);
    Иначе
    НовОбъект[стрCOM.Name] = _Ссылка;//НовОбъект.Ссылка;НовОбъект.Ссылка;
    КонецЕсли;
    Исключение Сообщить(ОписаниеОшибки()) КонецПопытки;
    КонецЦикла;
    

    Показать

    Следом идет перенос просто рекизитов, затем табличных частей.

    Здесь сомнения вызывает условие

    ИЛИ стрCOM.Name = «ЭтоГруппа»

    , попробуйте убрать его, или просто посмотреть отладчиком с точкой останова на этой строке. Удивляет, что только один уровень вложенности пропадает…помотреть бы.

    Reply ↓
  12. Krez

    (11) Уточню, я не переношу отдельно справочник ОС. Я создаю документы ВНО по разделу ОС

    Reply ↓
  13. Alex_E

    (12) Krez, Это понятно, просто алгоритм переноса одинаков вне зависимости от того, переносится справочник, или переносятся остатки, или переносятся документы — всегда работает тот код, что привёл выше…

    Что отладчик говорит можете сказать?

    Reply ↓
  14. Krez

    (13) по отладчику пока не смотрел, пока выяснил что не перенеслись ОС с пустой датой принятия к учету, оказавшиеся в одной группе.

    Reply ↓
  15. Alex_E

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

    Reply ↓
  16. DmitrySS

    При подключении к базе в обработке сразу ошибка:

    Сигнатура проблемы:

    Имя события проблемы: APPCRASH

    Имя приложения: 1cv8c.exe

    Версия приложения: 8.3.6.2449

    Отметка времени приложения: 565d1224

    Имя модуля с ошибкой: backbas.dll

    Версия модуля с ошибкой: 8.2.19.130

    Отметка времени модуля с ошибкой: 54ca1561

    Код исключения: c0000005

    Смещение исключения: 0015113b

    Версия ОС: 6.1.7601.2.1.0.256.48

    Код языка: 1049

    Дополнительные сведения 1: 0a9e

    Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789

    Дополнительные сведения 3: 0a9e

    Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789

    Reply ↓
  17. Alex_E

    (16) DmitrySS, Библиотека comcntr.dll зарегистрирована? Попробуйте от имени администратора выполнить команду: regsvr32 «<Пусть к папке платформы 1с>incomcntr.dll»

    Reply ↓
  18. Alex_E

    (16) DmitrySS, а вообще гугл говорит много чего про эту ошибку, тут уже обсуждалось http://forum.infostart.ru/forum26/topic75336/ Проблема вроде как распространённая. у меня такого не наблюдалось ни разу, но ссылок гугления море, например http://nastroisam.ru/oshibka-appcrash/

    Ошибка в backbas.dll наводит на мысль…что её немного редатировали? 😉

    Reply ↓
  19. mixperm

    Обработка очень нужна. В данный момент требуется перенести 41 и 45 счета. По 41 счету сойдет, а вот 45 пустой файл, хотя в отладке видно, что файл данными заполняется, но в итоге пусто

    Reply ↓
  20. Alex_E

    (19) mixperm, О каком файле идёт речь? Здесь нет никаких файлов, идет перенос остатков в документы ВНО, никакие файлы не используются

    Reply ↓
  21. mixperm

    (20) опечатка)) документ ВНО конечно

    Reply ↓
  22. Alex_E

    (21) mixperm, Я уж испугался 🙂 45 счет сейчас не отрабатывает, только что посмотрел — там ТЧ ВНО «МПЗОтгруженные», я её не заполнял((( Надобности не было, функционал наращивается по мере необходимости (когда писал, 45 счет попадал с ТЧ «НоменклатураНаСкладе», что для 45 счета неправильно)… Мне бы базу с реальными остатками по 45 счету, или попробую просто так нарисовать…

    Reply ↓
  23. mixperm

    (22) я с радостью дал бы базу для теста, но она просто огромна, загрузка dt только час занимает, замена конфидициальной информации займет нереально много времени. Буду очень признателен если добавите этот функционал. А еще открою секрет, если такую загрузку сделаете в ERP, то такой обработке цены не будет))) можете платную версию сделать даже. Просто окончательная задача у меня создать ВНО в ERP конфе. Пока приходится грузить в базу посредник.

    Reply ↓
  24. Alex_E

    (23) mixperm, Страшные секреты про ERP — про это только шёпотом. А, если серьёзно, то гнаться сразу за двумя зайцами — стопудово не пойматьни одного, сейчас задача БП — её и решаю 🙂 Про 45, сейчас накидаю по быстрому — посмотрел — там кроме Контрагента, Номенклатуры, Партии вроде ничего не двигается (или есть какие то особые организации со специфической учётной политикой), зачем там огромная ТЧ отдельная непонятно, но сейчас нарисую…

    Reply ↓
  25. mixperm

    (24) в 41 счете в с/ф не заполнен Вид ценности (не знаю как бухгалтерам надо)

    Reply ↓
  26. Alex_E

    (25) mixperm, Для 41 логично «Товары»…

    Reply ↓
  27. Alex_E

    (19) mixperm, Выложил новую версию, с разделом «Товары отгруженные» (45 счет)…

    Reply ↓
  28. mixperm

    (27) отлично, сейчас тестировать буду

    Reply ↓
  29. Alex_E

    (28) mixperm, Делал на тестовой, боевой такой нету, потому очень интересно, что получилось…

    Reply ↓
  30. mixperm

    (29) Строка 6454 модуль объекта была ошибка, не находил имени колонки, сделал так :

    Попытка
    РеквCOM = стрCOM[КолонкаИмяCOM];
    Исключение
    Продолжить;
    КонецПопытки;

    В итоге загрузилось, без партий и с/ф((( Еще у меня в конфе режим совместимости с 8.3.5 зачем-то стоит п.э. пришлось везде заменить СтрНайти на просто Найти

    Как на счет партий и с/ф?

    Reply ↓
  31. Alex_E

    (30) mixperm, На 45 счете какие счета-фактуры?

    на комиссию передём товары, НДС тут нет, нет и счетов фактур, партии , если есть партионный учет только должны были встать, как бы в запрсе все 3 субконто в остатках проверяются. Про ошибку, обойдённую попыткой — посмотреть бы тест, на какую колонку ругнулось…

    Вообще, конечно, отлаживать нужно на баевой базе, я не могу придумать более-менее вменяемую базу, потому как у всех свои тараканы в учете, о которых я частенько не догпадываюсь…

    Есть ещё вариант — могу попробовать на Вашей базе удалённо, через Ammyy Admin, если что — пишите в личку

    Reply ↓
  32. mixperm

    (31) В бухгалтерии я не силен))))) Просто партии требует указать, их нет. Удаленно без вариантов, админы все закрыли.

    Reply ↓
  33. Alex_E

    (32) mixperm, Можно картинку ОСВ по 45 счету по всем 3 субконто посмотреть? И почту хоть в личку напишите, чтобы не скачивать кучу промежуточных версий (я и выкладывать пока ничего не буду,Ю надо разобраться). Итак, нужно:

    1. Сообщение об ошибке в колонке

    2. Посмотреть оборотку, секретное в картинке можно затереть…мне хочется убедиться, что партии там таки есть.

    Reply ↓
  34. Alex_E

    Да, новые версии выкладываю для последнего на дату публикации релизе, сейчас это 3.043.258. В нём реально в ТЧ нет колонки «Выручка», есть «УдалитьВыручка»…

    ИМХО, уж коли сворачивать базу, то имеет смысл делать это для актуального релиза (настроенную БП так же лучше обновить)… Вполне может быть, что в предыдущих релизах Партия была в обязательных для заполнения реквизитах, сейчас это не так, обязателен «ДокументРеализации», хотя зачем он там нужен для ОСНО непонятно наглухо — в движениях он не участвует (не смотрел, может при включеном партионном ученте он нужен, хотя партия — обычно это документ поступления?)

    Reply ↓
  35. cyborg55

    Свернул 3.0.43.241. Вроде все нормально. Спасибо за обработку.

    Reply ↓
  36. Alex_E

    Пожалуйста 🙂

    Reply ↓
  37. mastakw

    Замечания:

    1. Файлы ВНО записываются со странным временем «00.00.00». Должно быть «23.59.59», как и выборка остатков.

    2. 70 й счет без аналитики

    Reply ↓
  38. Alex_E

    (37) mastakw, Про время 23:59:59 непонятно, кому это должно? До даты ввода остатков никаких движений быть не должно — это точно. ВНО с временем 0 — непринципиально, хотя исправить несложно — документы создаются в модуле формы в одной процедуре — добавить в дате КонецДня не проблема. Повторю — ни на что время ВНО не повлияет)))))

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

    Reply ↓
  39. Alex_E

    Выложил новую версию, не могу гарантировать, что всех возможных вариантов ведения учёта там будет все прописано — нужно больше исходных баз, всего многообразия вариантов, я, при всём желании, не придумаю))))))))

    Reply ↓
  40. Alex_E

    (37) mastakw, Специально посмотрел, какое время ВНО в ДЕМО базе:

    Reply ↓
  41. Alex_E

    Выложил новую версию я учетом изменений в релизах БП 3.0.44.*. (Реализовано на БП 3.0.44.123 платформа 8.3.8.2054).

    Reply ↓
  42. smirko

    Алексей, какая версия подходит для типовой БП КОРП 3.0.43.*?

    Reply ↓
  43. Alex_E

    (42) smirko, 6.0.6.5 должна отработать, но не понимаю смысла делать свертку не на последнюю конфигурацию?

    Reply ↓
  44. smirko

    (43) а с 44-ым релизом сейчас все косяки исправили? )))

    Reply ↓
  45. Alex_E

    (44) smirko, А какие косяки для Вас критичны? Я практически всех перевел, пока фатального ничего не встретилось (не говорю, что там всё гладко, так и в 43 было не всё празднично, смысла ждать безкосяного релиза, ИМХО, нет, поскольку таковых в природе не бывает — работаем с тем, что есть, если находим косяки — пишем в 1с, или самостоятельно правим, когда то было по другому?)…

    Reply ↓
  46. llg_44

    Доброго вечера. Скачала.

    На закладке ВНО не отобразились кнопки создания.

    Обработка версии 6.1 скачана. Она работоспособна?

    Проконсультируйте пожалуйста.

    Reply ↓
  47. Alex_E

    (46) llg_44, Ещё нажимать не пробовапли, если экран не шибко большой — кнопки могу уйти в Ещё, или попробуйте расширить левое окно

    Reply ↓
  48. llg_44

    Все хорошо и понятно. Автору респект.

    Я считаю эту разработку перспективной.

    На самом деле основной вопрос — НДС + распределенный НДС.

    Стандартная свертка вообще никаких вопросов не решает. Здесь же расшифровалось доступно. И недостатки ведения учета бухгалтером наглядны.

    Reply ↓
  49. llg_44

    (47) спасибо Вам) все получилось.

    Reply ↓
  50. Ioryk

    Спасибо!

    Замечательная работа.

    Но, возникла проблема, не выгружает Учётную политику.

    «Таблица не найдена….»

    Reply ↓
  51. Alex_E

    (50) Ioryk, Я в курсе, в следующей версии выгружает. просто пока не выложил — есть проблемы с входящим НДС при раздельном учете по способам на 19, хотел доделать…

    Reply ↓
  52. Alex_E

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

    Reply ↓
  53. vasja_yar

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

    Reply ↓
  54. Alex_E

    (53)

    Скачал, попробовал, разочаровался…..

    — в заголовке beta, но кто ж на это смотрит?

    Про разачарование хотелось бы поподробней — выложил как раз для того, чтобы сделать правильно.

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

    Reply ↓
  55. vasja_yar

    (54)

    лось бы поподробней — выложил как раз для того, чтобы сделать правильно.

    Для этого нужны комме

    ок, просто времени нет для подробных отчетов.

    Но первое хотелось без подключения к базе, а на текущей уже создавать ВНО, а уже по жеданию их переносить в другую базу.

    Так же пароль от кластера нет поял ввода. У нас ля подключения надо вводить имя и пароль не только от ИБ но и от 1с кластера

    2. В комментариях к коду указаны что счета 02.01 не обрабатываются

    Эмоционально, так как просто не заработала у меня на БП 3.0

    Reply ↓
  56. Alex_E

    О как…

    Попробую по пукнтам:

    хотелось бы без подключения к базе….

    круто, и что мне делать, если сама обработина задумана как перенос остатков в пустую базу из исходно, причём без разницы «двойки» или «тройк»

    а на текущей уже создавать ВНО,

    для 2.0 такой подход реализован в http://infostart.ru/public/118486/, для 3.0 делать такого не буду, ибо опыт такого подхода в 2.0 говорит, что создание новой базы и ввод остатков ней гораздо практичней …. может я не прав, но это моё ИМХО. моя придумка, и…ну короче — мои галоши — куды хочу — туды и ставлю!!!!

    Так же пароль от кластера нет поял ввода.

    — ну тут вообще непонятно, кто кого поял, но подключение к другой базе через COM описано не раз, потому и в чём разница между подключением к файловой базе или к серверной можно много чего почитать

    В комментариях к коду указаны что счета 02.01 не обрабатываются

    — ну в комментариях написано, что 02.01 не обрабатывается потому как остатки вводятся вместе с 01.01…так документ ВНО устроен, а что не так?

    Эмоционально, так как просто не заработала у меня на БП 3.0

    — пишите в личку — могу показать как и что через амми админ, а пока только эмоции, и ничего, как руководство к действию(((((

    Reply ↓
  57. Borodach

    Добрый день.

    1С:Предприятие 8.3 (8.3.8.2197)

    Бухгалтерия предприятия, редакция 3.0 (3.0.46.16) (http://v8.1c.ru/buhv8/)

    1С запускаю от имени администратора

    но при запуске обработки появляется окно «Нарушение прав доступа»

    В чем может быть дело?!

    Reply ↓
  58. Borodach

    Вот более подробно

    Ошибка загрузки документа.

    по причине:

    Ошибка подключения внешних метаданных

    Отсутствуют права на интерактивную загрузку внешних обработок

    по причине:

    Нарушение прав доступа!

    Reply ↓
  59. Borodach

    Разобрался в версии БП 3.0.46.16 не достаточно вкл. роль «Администратор», надо еще роль «Право запуска внешних обработок».

    Reply ↓
  60. Alex_E

    (59) Недавно появилось, в связи с появлением шифровальщика для 1С. Он как раз через внешние и запускается))))

    Reply ↓
  61. makcbol1

    Бухгалтерия предприятия, редакция 3.0 (3.0.37.41) Алексей какую версию лучше использовать v6.0.6.5 или v6.2.2.4?

    Reply ↓
  62. Alex_E

    Версии появляются по мере выхода обновлений 1с и расширению функционала обработки. Использовать лучше последнюю, но предыдущие оставил для того, чтобы на старых версиях БП можно было попробовать предыдущие версии обработки… Я всегда использую последнии, правда с обновлениями платформы и программы возможно, что что-то придётся править)))))))

    Reply ↓
  63. sergeyshik

    Может подскажите как художник — художнику.

    У меня в источнике остатки висят на нескольких счетах , которые вливаются в один.

    В алгоритме ищется по счету приемника ищется соответствие из таблицы счетов, но ищется только одно соответствие.

    ГДе будет покрасивее подписать, что если есть несколько соответствий, то возвращать массив счетов?

    Reply ↓
  64. Alex_E

    (63) Если потребность «одноразовая», то в модуле есть процедура переноса счета — там можно написать соответствие прямо в коде. Но, я не пробовал, но если в таблице соответствия будет несколько строк со счетами разными счетами источника и одним счетом приемника, разве не отработает?

    Reply ↓
  65. sergeyshik

    (64)нет, вроде не отрабатывает. сейчас более глубоко изучу вопрос. потребность не разовая. Результат пришлю в личку для последующей версии 🙂

    Reply ↓
  66. Alex_E

    Буду только рад!

    Reply ↓
  67. hibico

    Попробовал перенос 2.0 (2.0.66.16) —> 3.0 (3.0.47.28).

    Всё очень плохо 🙁

    Вкратце, не переносятся:

    Организация (в 3.0.47 отсутствуют ТерриториальныеУсловия, УчетнаяПолитикаОрганизации),

    Соответсвенно УчетнаяПолитикаОрганизации,

    План счетов (отсутствует ОбщегоНазначенияБПКлиентСервер.СтруктураПараметровУчета()),

    70 счет, Зарплатные документы и т. д.

    Буду пробовать с откатом на 3.0.44.

    Reply ↓
  68. Alex_E

    реально Учетная ПолитикаОрганизации сейчас назыется УчетнаяПолитика

    Reply ↓
  69. Alex_E

    выложил обновлённую версию

    Reply ↓
  70. hibico

    (69)То, что номер версии прежний «СверткаИПереносБП_БП30_v6.2.2.4» — это нормально?

    Кстати на версии 3.0.44.204 были почти те же проблемы.

    Reply ↓
  71. Alex_E

    Выложил новую версия 6.2.2.6. (кстати по неизменившемуся номеру — никак не привыкну к новому редактору публикаций)

    Reply ↓
  72. makcbol1

    при запуске вылазит ошибка «Процедура или функция с указанным именем не определена (СтрНайти)» БП 3.0.37.41 платформа 8.3.8.2137

    Reply ↓
  73. Alex_E

    Старый метод поддерживается для совместимости с 8.2 Найти (Find)

    Имя метода глобального контекста. СтрНайти (StrFind) используется без режима совместимости с 8.2

    Reply ↓
  74. makcbol1

    (73) подскажи что надо сделать что бы запустилась ?

    Reply ↓
  75. Alex_E

    (74) Или уберите совместимость в 8.2 (в типовой 3.0.37.41 совместимость с 8.3.8, если не ошибаюсь, поэтому не совсем понятно для чего включена совместимость с 8.2?). Или попробуйте заменить СтрНайти на просто Найти с соответствующими параметрами и обработкой возвращаемых значений.

    Отмечу в очередной раз — разработка идёт на последних релизах платформы и в типовой конфигурации. Предусматреть всяческие извращения все возможные варианты работы с БП не представляется возможным)))))

    В принципе вопрос уже задал — зачем совместимость с 8.2?

    Reply ↓
  76. mrkop
    Reply ↓
  77. Alex_E

    (76) Не совпадающие реквизиты пропускаются, но выдается сообщение. Остатки то по 01 и 02 счету перенеслись?

    Reply ↓
  78. mrkop

    Создался вот такой документ и все, он не проведен.

    Reply ↓
  79. Alex_E

    (78) Попытка провести что говорит? В принципе, могу посмотреть через амми админ — пишите в личку

    Reply ↓
  80. mrkop

    (79) Ругается на «не задана система налогообложения.»

    Reply ↓
  81. Alex_E

    (80) Установите вручную (есть перенос на закладке константы, но в 2.0 слишком мало настроек Учётной политике, потому можете перенести оттуда и руками добить нужное — в 3.0 настроек больше)

    Reply ↓
  82. lepth

    Приветствую и спасибо за обработку!

    Не могу понять почему перечисления переносятся через Порядок? Например ставка ндс 18%, порядок 0, функция _ПеренестиРеквизит возвращает также 0 (т.к. примитивный тип), и значение в итоге не заполняется. Если убрать порядок и оставить ссылку, то все встает нормально.

    Reply ↓
  83. Alex_E

    (82)

    Не могу понять почему перечисления переносятся через Порядок

    потому что в запросе через COM кроме порядка ничего не получишь….

    Reply ↓
  84. lepth

    Странно, Ваша же функция ПеренестиРеквизит прекрасно разбирает com-ссылку перечисления. В то время как порядок совершенно не дает результата.

    Reply ↓
  85. Alex_E

    (84) Ссылку прекрасно переносит, а вот из запроса только порядок)))) Не один час убил, когда писал — иного варианта просто нет….

    Reply ↓
  86. lepth

    _ПолучитьСотрудника — нужно поправить таблицу для варианта БП 2.0 на СотрудникиОрганизаций. Не часто, конечно, ведется развернутый учет по работникам на 70, но все же..

    Reply ↓
  87. Alex_E

    (86) Спасибо за ошибку, их ещё много найдётся , думается, не все делятся, почему-то((((

    Reply ↓
  88. lepth

    а НМА, как я понял, пока в разработке?

    Reply ↓
  89. Alex_E

    (88) Да, т.к. как-то пока не попадалась база, где они были, потому и не делала пока, как попадётся — так сразу

    Reply ↓
  90. lepth

    Еще нашел неточность в «любимом» разделе 76.АВ, а именно в переносе счетов-фактур. Хоть в комментарии и указано, что счф переносим всегда, при выставленном флаге АналитикаДокументамиРасчетовСКонтрагентами лезет в процедуру преобразования и возвращает другой тип. Соответственно в итоговом поле СчетФактураДокумент находится Неопределено.

    Да, 76.АВ частенько не переносят и заполняют уже в приемнике по перенесенному 62.02, но все же 76.ав иногда требуется из-за номеров этих самых авансовых счф.

    Reply ↓
  91. Alex_E

    (90) Надо исправлять — если в остатках есть 76.АВ со счетами фактурами, то, в нынешних условиях уже не важно, что там на 62.02 (если конечно не совсем запущенный случай, и эти счета-фактуры на аванс были в книге продаж декларации) — их нужно переносить обязательно. В этом случае документов расчетов с контрагентами должно быть основание счета-фактуры на аванс, а сам документ должне быть перенесен как есть. Тут вопрос, в исходной базу счет-фактура то был? А то, бывало 76.АВ есть, и хорошо ещё если контрагент там есть, могло быть вообще счет 76.АВ и рассчитанная сумма)))). Дайте мне Вашу базу — интересно поковыряться, заодно и НМА можно будет добавить…

    Reply ↓
  92. Ioryk

    Замечательная обработка. Несколько раз использовал, всё устраивает, хотя ещё и осталась ручная работа.

    Такой вопрос возник, что бы скачать обновленную версию — нужно опять платить ?

    Или есть какой то механизм, для доступа к уже скаченным файлам ?

    Reply ↓
  93. Alex_E

    (92) Насколько мне известно — нет. Сам постоянно скачиваю обновленные версии публикаций за мани — других вариантов не нашёл… Но тут вопрос скорее не ко мне, а к администрации сайта.

    Reply ↓
  94. mrkop

    При формировании ВНО Капитал вложение Выходит ошибка «не найдена номенклатура»

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

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

    Расчет с персоналом по оплате труд вылетела ошибка и документ не проведенный

    Reply ↓
  95. Alex_E

    (94)Дайте базу…

    Reply ↓
  96. mrkop

    (95) Вот Лог есть всех процедур которые делал. Делал скриншоты этих ошибок но что то не найду где они (((

    Reply ↓
  97. Alex_E

    (96) А Вы в исходной базе ОСВ, к примеру, на дату свертки делать не пробовали, может там те же косяки, просто ВНО их не принимает, а в учете они есть?

    Reply ↓
  98. slawa

    Для того чтоб не дублировались документы ВНО при перезакачке предлагаю немного подправить код функции модуля формы

    &НаСервере
    Функция СоздатьДокументВНО(РазделУчета, СчетУчета, Подразделение = «»)
    //вно = Документы.ВводНачальныхОстатков.СоздатьДокумент();
     //slawa Нач 20180706 00:52 (ID:)
    ЗапросВНО = Новый Запрос;
    ЗапросВНО.Текст =
    «ВЫБРАТЬ
    | ВНО.Ссылка КАК Ссылка
    |ИЗ
    | Документ.ВводНачальныхОстатков КАК ВНО
    |ГДЕ
    | НЕ ВНО.ПометкаУдаления
    | И ВНО.Организация = &Организация
    | И ВНО.РазделУчета = &РазделУчета
    | И НАЧАЛОПЕРИОДА(ВНО.Дата, ДЕНЬ) = &НачалоДняДата
    | И ВЫРАЗИТЬ(ВНО.Комментарий КАК СТРОКА(100)) ПОДОБНО &Комментарий
    | И &Подразделение»;
    ЗапросВНО.УстановитьПараметр(«Организация», Объект.Организация);
    ЗапросВНО.УстановитьПараметр(«РазделУчета», РазделУчета);
    ЗапросВНО.УстановитьПараметр(«НачалоДняДата», НачалоДня(Объект.ДатаВводаНачальныхОстатков));
    ЗапросВНО.УстановитьПараметр(«Комментарий», «%» + СчетУчета + «%»);
    Если ЗначениеЗаполнено(Подразделение) Тогда
    ЗапросВНО.Текст = СтрЗаменить(ЗапросВНО.Текст, «И &Подразделение», «И ВНО.ПодразделениеОрганизации = &Подразделение»);
    ЗапросВНО.УстановитьПараметр(«Подразделение», Подразделение);
    Иначе
    ЗапросВНО.Текст = СтрЗаменить(ЗапросВНО.Текст, «И &Подразделение», «И ВНО.ПодразделениеОрганизации = ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)»);
    КонецЕсли;
    выбЗапросВНО = ЗапросВНО.Выполнить().Выбрать();
    Если выбЗапросВНО.Следующий() Тогда
    вно = выбЗапросВНО.Ссылка.ПолучитьОбъект();
    Для каждого таб Из вно.Метаданные().ТабличныеЧасти Цикл
    вно[таб.Имя].Очистить();
    КонецЦикла;
    Иначе
    вно = Документы.ВводНачальныхОстатков.СоздатьДокумент();
    КонецЕсли;
    //slawa Кон
    
    вно.Дата = КонецДня(Объект.ДатаВводаНачальныхОстатков);
    вно.Организация = Объект.Организация;
    вно.РазделУчета = РазделУчета;
    вно.Комментарий = «#[» + СчетУчета + «]» + » Введен обработкой переноса (свертки) данных [» + ТекущаяДата() + «]»;
    вно.Ответственный = Пользователи.ТекущийПользователь();
    вно.ОтражатьПоСпециальнымРегистрам = Истина;
    вно.ОтражатьВНалоговомУчете = Истина;
    вно.ОтражатьВБухгалтерскомУчете = Истина;
    Если ЗначениеЗаполнено(Подразделение) Тогда
    вно.ПодразделениеОрганизации = Подразделение;
    КонецЕсли;
    Возврат вно;
    КонецФункции
    

    Показать

    Reply ↓
  99. Alex_E

    (252) Спасибо за предложение, подобный вариант с поиском документов у меня был, но я от него отказался. Причина проста, в обработке могло быть указано количество строк в документе, и в результате ввода остатков могло образоваться некоторое количество документов…потом что-то изменили, и количество строк могло измениться, вообще их состав может поменяться, как и количество документов, в общем, сейчас документы просто остаются и их можно удалить перед вводом новых, а с поиском можно нарваться на «непредвиденные хвосты»…

    Ваш код очистит все ВНО по выбранному разделу, часть может оказаться пустой…в общем, почему бы нет? Но, я пока остановился на варианте без очистки — как минимум есть возможность сравнить результаты, а по номерам документов видно какие более «свежие» …если они провелись конечно.

    В общем, будет досуг, подумаю, может включу Ваш код в обработку, пока мне как-то привычней что-ли, в том виде, в котором есть сейчас.

    Ещё раз спасибо за предложение, возможно включу вы обработку…

    Reply ↓

Leave a Comment

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