Моя домашняя бухгалтерия + мобильное приложение




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

64 Comments

  1. acapulco

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

    Reply
  2. fuxic

    Было бы приятно демо-базу увидеть с примерами

    Reply
  3. qwinter

    (1) acapulco, неужели вы вообще ничего не оплачиваете наличкой? И доходы тоже наличкой не получаете?

    Reply
  4. acapulco

    (3) практически нет. Сейчас везде принимают карты к оплате, а семки на улице я не покупаю)) Частично з/п получаю наличкой, которую также кидаю на карту.

    Reply
  5. Akuji

    (1) acapulco,

    и неужели у вас всего одна карта? нет вкладов, карточки для интернет расходов, заначки, жены (расходы ее учету не поддаются правда)

    Reply
  6. Akuji

    А почему не одним архивом( ради посмотреть чу-там не охото дважды качать.

    Reply
  7. qwinter

    (6) Akuji, не люблю архивы)) можно скачать и с моего сайта. (он в профиле)

    Reply
  8. Lotar

    (4) acapulco, побывав в «цивилизованной» Европе, убедился, что карточками можно расплатиться далеко не везде. Италия и Греция. В Финляндии напротив — даже пирожок с лотка на улице можно с карты купить. 🙂 В крупных городах России с картами проблем, обычно, нет. А в небольших городах уже не все так хорошо. Опять же, жене денег на расходы с карты не передать мгновенно, приходится наличные использовать. 🙂

    Reply
  9. acapulco

    (5) Akuji, верно, карта одна на все (раньше было 3, но смысла в их нет). 2 вклада, которые опять же в личном кабинете отображаются. У жены своя карта, это ее расходы)) Она меня и приучила расплачиваться картой везде))

    Возможно, мобильное приложение для кого-то полезная вещь. Здесь каждый решает ждя себя))

    Мне лично лень каждый рубль «разносить» вручную, да еще все это самому структурировать и т.д.

    Reply
  10. acapulco

    (8) Lotar, если у жены есть карта, то сделать перевод через мобильное приложение — элементарно, «в один тап»))

    Reply
  11. Akuji

    (9) acapulco,

    2 вклада, которые опять же в личном кабинете отображаются

    слышал проценты в сбербанке огромные) особенно если открывать через онлайн банк…

    для общего учета одним клиент банком не обойтись ИМХО. Вам повезло — что все в одном банке и вас это устраивает.

    Reply
  12. Nadushka74

    (11) Akuji, сейчас даже деньги в школе так сдаем, кидают деньги на карту родителя, который закупками занимается, из 30 человек только 7 принесли наличку.

    Reply
  13. acapulco

    (11) Akuji, верно, процитирую вас еще раз

    Программа для учета личных финансов это однозначно что то личное, и каждый ее подбирает или создает под себя.
    Reply
  14. aleksey.kubovtsov

    плюс за конфигурацию . автору спасибо

    Reply
  15. qwinter

    (14) aleksey.kubovtsov, честно говоря я совсем не ожидал, что она будет настолько интересна пользователям этого ресурса)

    Reply
  16. iov

    Можно вопрос? Я не увидел или нет планового периодического поступления денег?

    Reply
  17. sky.xn

    (7) А какие подсистемы из БСП используются в этой конфигурации ???Внедряли БСП для получения нового опыта ? Или от нечего делать ?

    Reply
  18. sky.xn

    (15) Собираетесь ли вы в последствии выкладывать обновленные версии конфигурации ? Еще было бы замечательно, если вы написали небольшой мануал по пользованию конфиги, чтобы понять, что к чему вообще.

    Reply
  19. qwinter

    (16) iov, хм, действительно забыл доделать функцию по созданию задач с плановыми доходами, спасибо за замечанию, исправлю в ближайшее время.

    Reply
  20. qwinter

    (17) sky.xn, используются подсистемы контактная информация, обмен данными и задачи из бизнес-процессов, БСП внедрялась для контактной информации и задач. Сейчас же, она используются для изучения новых версий БСП.

    (18) sky.xn, обновления будут. По мануалу сложнее, пока обещать не буду, но вроде как там все интуитивно понятно.

    Reply
  21. b-dm

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

    Reply
  22. monkbest

    (1) acapulco, люди делятся на android и ios. У второво приложение — полностью повторяет возможности сайта, а у первого, только баланс и минивыписку смотреть позволяет

    Reply
  23. monkbest

    Вопрос: нашел в системе займы/кредиты, я так понимаю, что это я кому-то должен, а когдая мне должны какой документ вносить?

    Reply
  24. qwinter

    (23) monkbest, там один документ, в следующей версии переназову его, что бы не было таких недопониманий. у видов обязательств есть реквизит: «Категория», который и регламентирует данный факт, должен я или должны мне.

    Reply
  25. sky.xn

    (22) monkbest, люди делятся на android и ios. У второво приложение — полностью повторяет возможности сайта, а у первого, только баланс и минивыписку смотреть позволяет

    О каком сайте идеть речь не пойму ?

    Reply
  26. qwinter

    (25) sky.xn, я догадываюсь, что о сбербанк-онлайн.

    Reply
  27. monkbest

    (25) sky.xn, я отвечал не Вам, говорю про сайт сбербанк-онлайн и его два приложения для ios и для android. Эти приложения очень сильно отличаются по функционалу. Самы полный функционал на сайте. IOS — почт полностью дублирует сайт, а на андройд нё хёрёна нет

    Reply
  28. dddxddd

    А где же фиксация показаний водомеров, электросчетчиков и расчет оплаты их показаниям? Водомеры еще и поверять надо, а это тоже плановая задача и расход.

    Reply
  29. kentavr27

    Захотел посмотреть работу мобильного приложения и связку его с основной базой. Вот только с обменом между базами что-то ничего не понял… Создал узлы. Пошел в настройку синхронизации — синхронизация данных. Пишет, что «Возможность настройки синхронизации данных не предусмотрена». Это так задумано?

    Посмотрел общий модуль ОбменДаннымиПереопределяемый. Все процедуры пустые.

    Или я не туда копаю или в чем прикол?

    Reply
  30. qwinter

    (29) kentavr27, синхронизация идет из мобильного приложения, через стандартный для БСП веб-сервис exchange.

    Reply
  31. sky.xn

    (30) Если не затруднит, опишите пожалуйста, вкратце как вообще с технической точки зрения работает синхронизация ? Мобильное приложение подключается напрямую к информационной базе ? Или выгружает xml ? Или каким образом это вообще работает ?)))

    Reply
  32. sky.xn

    (30) Скачал .cf мобильной конфигурации, как теперь установить ее на смартфон ? Необходимо скачать мобильную платформу и с ее помощью скомпилировать установочный .apk ? Просвяти плз по этому вопросу, до этого не работал с мобильной платформой

    Reply
  33. sky.xn

    (30) БСП так понял внедряли не выборочно, а сразу всю библиотеку ? Уж слишком там много подсистем которые не используются. В целом весьма и весьма дельная конфигурация, так же хочу создать нечто подобное, но с планированием и календарем задач по типу Google календаря, чтобы все было в одной конфиге

    Reply
  34. kentavr27

    (32) sky.xn, да, нужно скомпилировать в apk. Я эту конфу взял тоже для знакомства с мобильным приложением. У меня скомпилировать получилось. На планшете работает.

    Но вот с синхронизацией — сплошной затык получается. Потому как непонятно что и как именно должно работать.

    Reply
  35. kentavr27

    (30) присоеденяюсь к (31).

    На сервере должен быть поднят Microsoft Exchange? Какой роли Exchange достаточно для синхронизации данных? Версия Exchange значения не имеет? Хотелось бы понять что к чему, но когда до этого не работал ни с МП, ни с Exchange, то без описания как-то тяжело дается 🙂 Приходится только догадываться.

    Reply
  36. qwinter

    (31) sky.xn, мобильное приложение подключается напрямую, через веб сервер.

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

    Reply
  37. kentavr27

    (36) c синхронизацией худо-бедно «догнал». Если я правильно понял, адрес сервера синхронизации пишу в таком формате: mysever.com:3232/home_buh/

    где 3232 — порт, открытый на маршрутизаторе

    home_buh — имя публикации, как задано в конфигураторе

    верно?

    далее пробую выполнит синхронизацию. Сразу же выпадает окно предупреждения

    При создании описания сервиса произошла ошибка. http://

    Pavel:xxxxxxx@myserver.com:3232/home_buh//MyBuh/

    ws/Exchange.1cws?wsdl

    Не совсем понятно откуда в ответе «Pavel» и откуда «MyBuh»…

    Подскажите, куда копать? Как можно вычислить источник этой ошибки.

    Reply
  38. qwinter

    (37) kentavr27, я глубоко извиняюсь, но видать залил не ту версию cf мобильного приложения. Ошибка в общей команде ВыполнитьСинхронизацию, в функции «ВыполнитьОбменДанными», там жесткая ссылка на создание ws определения, надо ее собирать из констант. Должно быть вот так:

    ВСОпределение = Новый WSОпределения(«http://» + АдресСервера + «/ws/Exchange.1cws?wsdl», Константы.ПользовательОсновногоПриложения.Получить(), Константы.ПарольПользователяОсновногоПриложения.Получить());
    Reply
  39. kentavr27

    (38) Исправил, но ошибка осталась такой же, но только с моим именем…

    Может, конечно я не там и не то делаю?

    Мои действия:

    Из основной базы опубликовал все что можно было вместе с web сервисами. Публиковал через администрирование-публикация на веб сервере.

    Конфигурацию для мобильного приложения скомпилил в *.apk, установил на планшет.

    В основной конфигурации в планах обмена прописал узлы «server» и «Mobile» c кодами, добавил пользователя. В настройке синхронизации поставил флаг «синхронизация данных».

    На планшете тож выполнил настройку. В имени сервера указал адрес_сервера:порт/Имя_публикации_на_веб_сервере

    В итоге получаю вышеуказанную ошибку при попытке синхронизации.

    Если я правильно понимаю, то база мобильного приложения на компе в принципе не нужна.

    В конфигураторе меню конфигурация-мобильное приложение существует еще «Публиковать»… Может еще нужна какая-то публикация оттуда? Или как или где?

    Reply
  40. kentavr27

    (38) еще вопросик/уточнение… если мобильную конфигурацию запускать на компе и синхронизировать, то результатом должно быть то же самое что и на планшете? Я правильно понимаю?

    Reply
  41. qwinter

    (39) kentavr27, вроде вы все делаете правильно. А у Вас в браузере если вы зайдете на адрес веб-сервиса, что показывает?

    (40) kentavr27, да результат будет идентичный.

    Reply
  42. kentavr27

    (41) пишет такую хрень

    Ошибка загрузки компонент работы с файловым вариантом информационной базыОшибка загрузки компоненты ‘help’Ошибка доступа к файлу ‘F:development_8_2Home_buh’77u/ew0KezlkYjFmYTM3LWI0NTUtNGYzZi1iOGRkLTdkZTBlYTdkNmRhMywi0J7R iNC40LHQutCwINC00L7RgdGC0YPQv9CwINC6INGE0LDQudC70YMgJ0Y6XGRldmVs b3BtZW50XzhfMlxIb21lX2J1aCcifSw0LA0KeyJmaWxlOi8vRjovZGV2ZWxvcG1l bnRfOF8yL0hvbWVfYnVoIiwwfSwic3JjXGZpbGVzLmNwcCgyMzE2KTogMTgzKDB4 MDAwMDAwQjcpOiDQndC10LLQvtC30LzQvtC20L3QviDRgdC+0LfQtNCw0YLRjCDR hNCw0LnQuywg0YLQsNC6INC60LDQuiDQvtC9INGD0LbQtSDRgdGD0YnQtdGB0YLQ stGD0LXRgi4gIn0=77u/ew0Ke2QyOTRlMzg0LTdlYTYtNDljNi1iZTk2LWYzYTZlM2RlMTI0Miwi0J7R iNC40LHQutCwINC30LDQs9GA0YPQt9C60Lgg0LrQvtC80L/QvtC90LXQvdGC0Ysg J2hlbHAnIn0sMX0=

    спасибо, натолкнули на мысль. С этим разобрался… В политике доступа дал полный доступ к папке с базой группе «ВСЕ».

    Синхронизация работать начала, но только до этого момента:

    Процедура ПринятьИзменениеПоПлану

    {ОбщаяКоманда.ВыполнитьСинхронизацию.МодульКоманды(83)}: Ошибка при вызове метода контекста (ПрочитатьXML)

    Данные = ПрочитатьXML(ЧтениеСообщения.ЧтениеXML);

    по причине:

    Ошибка преобразования данных XML: [26,9]
    Reply
  43. qwinter

    (42) kentavr27, попробуйте узлы заново создать.

    Reply
  44. RainyAugust22

    Взял на тестовое юзанье, посмотрим что получиться, давно хотелось вести учет $..

    За синхронизацию с андроидом +

    Reply
  45. RainyAugust22

    ps.ps. как данный .cf в андроиде юзать? нужно платформу под андроид качать и внем базу создать? напишите плз.

    Reply
  46. vslimv

    (45) RainyAugust22, установите конфигурацию сборщик мобильных приложений(или установите платформу на мобильный и опубликуйте на веб сервере мобильное приложение), а из этого .cf выгрузите .xml описание конфигурации. Там разберетесь думаю.

    Reply
  47. Maniac1975

    Автору плюс за разработку! Есть пожелания:

    1. Номенклатурный справочник, чтобы можно было вести аналитику, например, по затратам на сигареты и хлеб.

    2. Вид кошелька «Вклады», в котором можно вводить процент по вкладу и тип начисления процентов (ежегодно, ежемесячно).

    В остальном функционала мне хватает, отчеты по мере надобности напишу сам, сложного ничего нет.

    Удачи в разработке!

    Reply
  48. qwinter

    (47) Maniac1975,

    1. Справочник статьи расходов иерархический, с иерархией элементов. Лично я его использую как например статью продукты, и пару подчиненных статей которые я хочу из продуктов выделить.

    2. Планируется, но пока сильная занятость мешает сделать.

    Reply
  49. kentavr27

    Кое как (через отладчик, правку XML и т.п) удалось таки добиться синхронизации между основным и мобильным приложением.

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


    {ОбщаяКоманда.ВыполнитьСинхронизацию.МодульКоманды(84)}: Ошибка при вызове метода контекста (ПрочитатьXML)

    Данные = ПрочитатьXML(ЧтениеСообщения.ЧтениеXML);

    по причине:

    Ошибка преобразования данных XML: …….

    если в МП сделать справочник доходов иерархическим — ошибка при синхронизации тут же исчезает.

    Еще каким-то макаром статья расходов «Перевод между счетами» (предопределенный элемент с кодом 000000001) в основном приложении почему-то задвоился…

    Reply
  50. kentavr27

    (49), та же ошибка: документ «Доходы» в мобильном приложении отсутствует реквизит шапки «Содержание» (в основном — это общий реквизит). Но теперь ругается на реквизит табличной части «Сумма». Этого я пока не поборол… Реквизит одинаковый и там и там 🙁

    (0) Быть может есть какие-то другие способы борьбы с неоднородной структурой объектов конфигураций? Как можно побороть подобные ошибки?

    Интересно… Из всех скачавших никто не пробовал синхронизироваться? Почему подобных вопросов до сих пор не возникало? Или это только у меня одного такие грабли? 🙂

    ——————

    PS

    Доходы поборол… сгоряча удалил реквизит шапки «Ответственный». Вернул — синхронизация пошла. Будем ждать пока еще где-нить выстрелит

    Reply
  51. kosmius

    а «РЕГЛАМЕНТИРОВАНАЯ» валюта меняється или зашытий рубль? я понимаю что можна создать щета в любой валюте… но курс грузиться относительно рубля. можна ли менять относительно какой валюти хранить курс?

    Reply
  52. salus

    (0). Установил. При запуске вижу «ВВести расход». А как переключиться на экран «Функции» и настроить обмен?

    Reply
  53. salus

    (50) kentavr27,

    Повторяю Ваши шаги. Как обмен?

    Reply
  54. kentavr27

    (53) salus, Если исправить несоответствия справочников между основной и мобильной базой, то обмен происходит успешно. Пока больше ничего «не стреляло», кроме описанного

    Reply
  55. kentavr27

    (51) kosmius, если нет сильного желания заморачиваться, то можно просто добавить еще одну валюту (например USD) и курс валюты установить в положение «рассчитывать по формуле»; формула будет типа Я_USD/Я_UAH. Где Я_USD и Я_UAH символьные коды старых валют (которые загружаются относительно рубля).

    UAH (вновь заведенная) — курс устанавливается вручную (установить 1). При таком раскладе увидите курс USD относительно UAH и курсы будут продолжать загружаться с сайта

    Reply
  56. salus

    (55) kentavr27, соединение установлена. Получаю ошибку разбора XML[1,1]. Фатальная ошибка Extra content at the end of the document.Вывод. Нужно ставить мобильное приложение и тестировать через него. Кстати, поделиться полученным результатом можешь? Я имею ввиду полученные .cf

    Reply
  57. salus

    И как результат. Связка Деньги + МиниДеньги вполне решает мои вопросы. Вот такой результат использования данной конфигурациию

    Reply
  58. koks17v

    могу предложить свое решение сканирования и загрузки чеков для интеграции (как к Миниденьги так и к этой публикации):

    https://infostart.ru/public/692613/

    Reply
  59. softgarant

    кто вообще ставил эту связку и запускал? вот я сразу же нашел вшитую, неуниверсальную строку обращения к wsdl ссылке, там вшито название базы MyBuh и логин Pavel, как то неуниверсально и нигде не сказано про такой секрет. кстати сменив эти параметры на свои у меня еще не успех, дальше новая ошибка.

    Reply
  60. kentavr27

    (59) ставил, запускал, работало. Основная проблема, с которой я сталкивался — это несоответствие справочников мобильного и основного приложения. Как только привел поля в соответствие — обмен заработал. После того, как обновил платформу на одну из свежих версий — синхронизация опять потерялась, но с этим никак руки не доходят разобраться…

    Reply
  61. softgarant

    то есть все справочники должны быть идентичны по структуре реквизитов и их порядку? тут не юзаются правила конвертации данных?

    Reply
  62. DeniNikitin

    Добрый день!

    А можно по подробней про настройки описать, где какой узел надо создать, какой путь на мобильном прописать?

    Reply
  63. DeniNikitin

    К тому же после первого запуска и ввода начальных остатков при запуске и дальнейшей работе ошибка в процедуре СформироватьОстаткиНаСервере() — «ТекГруппа = Элементы.Добавить(«Группа» + Строка.КлючПоиска, Тип(«ГруппаФормы»), Элементы.Остатки);

    «

    Reply
  64. kentavr27

    (61) если не ошибаюсь, порядок реквизитов не важен, а вот структура реквизитов справочника должна быть идентичной.

    Reply

Leave a Comment

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