Adaptersoft : АК-47




Принцип обмена данными из 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. Арчибальд

    На скриншоте АКМ, а не АК-47. Это засада!

    Reply
  2. Душелов

    (1) Там автомат есть??

    Reply
  3. Арчибальд

    (2)К нему даже прицеплено что-то

    Reply
  4. JohnyDeath

    Читаю описание и думаю: «прям как у меня».

    Если всё так хорошо как и написано, то однозначно БОЛЬШОЕ спасибо!!!

    Я тоже ручками раскладывал гкомпом 3 конфы, потом натравливал на каталоги кдифф, а уж потом «муторно и нудно работаем пальчиками»

    Reply
  5. WiseSnake

    Исчё не смотрел! Но плюс за идею поставлю, чтобы не забыть потом поставить. На картинках вроде все красиво!

    > Также можно избавиться от сдвинутых на несколько пикселей форм

    А вот это реально задолбало…

    Reply
  6. mihast

    Вроде бы в комплект Vgcomp-а входит питоновский скрипт для выравнивания сдвигов форм. Мне — реально помогает. Так же как и разбор глобального модуля на отдельные процедуры.

    Reply
  7. Re:аниматор

    мда… то кассирочка, то бабенция с калашом, следующий вариант баба на тяжелой технике =)

    Reply
  8. Поручик

    Уберите автомат у девки. Женщина с автоматом — это обезьяна с гранатой.

    Reply
  9. bestuzhev

    (8) Присоединяюсь, требуем фото без автомата.

    Reply
  10. larisab

    Помнится недавно подобную штуку предлагали для 8.1 за жуткие деньги, а тут так скромно и без шуму, классная штучка. Под 8 не планируете?

    Reply
  11. gutentag

    (8) нет, пусть будет!

    за нее, «девушку с веслом», отдельный плюс

    Reply
  12. support

    сиськи рулят 🙂 вот уже и на главной странице

    Reply
  13. biv75

    (12) Пример правильного маркетингового хода, ну и что что у девушки, пневматическая копия АКМ, за то как поперло ))), всех сразу заинтересовало

    Reply
  14. biv75

    Да кстати, вещь хорошая и нужная в хозяйстве плюс заслужено

    Reply
  15. CheBurator

    было бы хорошо, если бы технология была описана поподробнее, так сказать для чайников, м.б. в виде статьи…?

    Reply
  16. adapter

    так вроде ж есть описание в конфе и пример. Если этого мало, то конечно могу и подробней, только хоть наводящих вопрос, конкретики дайте, или скажите где сложности?

    Reply
  17. mov68

    Буду смотреть, но плюс уже за попытку

    Reply
  18. muzikant

    Сиё волнует умы аборигенов давно….

    Reply
  19. cs25

    Плюс несомненно !

    Reply
  20. grigsi

    Ставлю Плюс !

    Reply
  21. 4ish

    Вау, спасибо.

    Подскажите, а как поступать в случае, если изменения коснулись, например, документа и в обновлении типовой и в измененной конфигурациях? Сначала обновить до типовой, а потом ручками вносить кусок измененного кода?

    Reply
  22. adapter

    нет. это как раз ситуация «коллизия». для их разрешения есть документ «анализ коллизий». Все ваши изменения (и структры объекта МД и программного кода) даются в текстовых файлах, которые вы сравниваете разрешаете через KDiff. В большинстве случаев kdiff это делает сам автоматом и правильно, но вам дается возможность проверит и поправить.

    описание и пример смотрели?

    Reply
  23. JohnyDeath

    (21) ну вообще-то как раз для таких случаев и создана эта конфа (на сколько я понял). Kdiff3 способен сравнивать 3 файла: старую типовую, новую типовую и твою измененную. Простые случаи он в силах сам исправить. Более сложное — ручками. Примерно как у автора на последнем рисунке

    Reply
  24. 4ish

    Пытался.

    Но так я начинающий, мало что понял. 🙂

    Спасибо, буду разбираться. Кстати, при двойном клике на GuidData в обоих окнах текст модуля написал кракозябрами. Так и должно быть?

    Reply
  25. artbear

    (0) Скажу сразу, прогу не смотрел, т.к. 77 счас мало занимаюсь, но подобной схемой пользуюсь давно.

    Вопрос: метаданными сливаются нормально, правильно?

    Reply
  26. adapter

    да. даже вставил проверку и восстановление уникальности идентификаторов в файле ОбъектыМетаданных.txt

    отрабатывает перед сборкой МД, опирается на Next ID из MainDataContDef (gComp его кладет в ИдентификаторыКонфигурации.mdp)

    т.е. при слиянии ОбъектыМетаданных.txt надо последить чтобы список добавленных объектов был полным, а идентификаторы АК сам доделает.

    Reply
  27. adapter

    (24) да

    Reply
  28. 4ish

    (23), (27) спасибо.

    Reply
  29. JohnyDeath

    (26) при слиянии ОбъектыМетаданных.txt надо последить чтобы список добавленных объектов был полным, а идентификаторы АК сам доделает.

    Как следить?

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

    Reply
  30. adapter

    пример работы AK47

    …………………………………………………………………..

    Скопируйте папку BasesAK в корень диска С. Тогда все пути в примере совпадут

    и перезаполнять ничего не придется.

    для тестирования взял простенькую самодельную конфигурацию из десятка объектов МД.

    Будем считать что:

    MD1 — типовая конфигурация (старый релиз)

    MD2 — типовое обновление (новый релиз)

    MD3 — Рабочая конфигурация (измененный МД1)

    Описание изменений обновления конфигурации (MD2)

    …………………………………………………………………..

    спр. Резервы

    — кол.ур увеличено до 5

    — в комментарии «Комент»

    — в синониме «Синон»

    док. Приход1 — добавлен

    док. Приход

    — добавлено 2 рекв. тбл.ч

    описание изменений рабочей конфигурации (MD3)

    …………………………………………………………………..

    док. Приход

    — добавлен реквизит в шапке «нов_в_шапке»

    Отчет Финансы1 — добавлен

    Reply
  31. adapter

    на примере дока Приход:

    в МД2 добавлено 2 реквизита в табл части,

    в МД 3 добавлен 1 реквизит в шапке

    на выходе в док «Приход» будет 2 реквизита в табл части и один реквизит в шапке. Это пример разрешения коллизии — изменения одного объекта метаданных в двух МД.

    >Как следить?

    в файле ОбъектыМетаданных.txt в каталоге результата должны быть строчки:

    57 Документ.Приход.новый1

    53 Документ.Приход.новый_в_шапке

    58 Документ.Приход.новый2

    Иды (57,53,58) проверятся на уникальность сами. Главное чтоб сами строчки с названиями объектов МД присутствовали.

    Reply
  32. 4ish

    Вроде все понял, объясните только — как работать с GUIDData, если там ничего не понятно? Откуда я знаю из какого мд-шника брать строку, из-за которой идет конфликт объединения?

    Reply
  33. adapter

    GUIDData

    содержит в себе информацию о наследовании файлов конфигурации. На содержание именно этого файла опирается 1с, когда говорит, что загружаемая конфигурация не является прямым потомком текущей.

    я думаю тебе без разницы. ну бери из обновления например.

    Вот тут все ответы

    http://yandex.ru/yandsearch?text=GUIDData+структура+конфигурации

    Reply
  34. blik

    Лог парсинга при попытке заполнить по запароленному MD-ешнику (загрузка не прошла):

    Extraction started: 2009.04.21 09:36:01

    ERR: Неверный формат: нет завершающей скобки ‘}’: C:DOCUME~1E6F6~1LOCALS~1Temp mp_7: line 0, column 33; MainMetadataStream

    предыдущая ошибка возникла в потоке d:work_new1cv7.mdMetadataMain MetaData Stream

    Убрал пароль, загрузка прошла. Предусмотренно заполнение из запароленного MD-ешника? Что-то я не нашёл.

    Reply
  35. adapter

    кажется ответ очевиден — нет. Работать с закрытыми конфигурациями не будет

    Reply
  36. AntiBuh

    спасибо, попробуем

    Reply
  37. LuckyIzja

    (1) На скриншоте АК-74.

    Reply
  38. intervencia

    Спасибо!

    Reply
  39. napala@

    Спасибочки! ничего кроме ПЛЮСА )

    Reply
  40. napala@

    у меня проблема… не хочет сохранять Kdiff3 выдает ошибку и все! сижу уже часа уже бы ручками обновила

    Reply
  41. adapter

    стучись в аську, попробую помочь по скриншотам и описаниям траблов

    Reply
  42. timurei

    инструкция прелогаеться…:)…?

    Reply
  43. timurei

    как пользоваться AK47_installером

    Reply
  44. Eugenie

    Спасибо автору. Плюс конечно же!

    Reply
  45. vlsv

    возникает проблема (не сохраняет kdiff3.exe ) если в пути каталога с базой AK47 русские буквы

    Reply
  46. vlsv

    В документе «анализ коллизий», изменения печатной формы, как зафиксировать изменения? Выскакивают 2 таблицы и что с ними делать?

    Reply
  47. uncle_au

    Конечно плюс!

    Reply
  48. @lex

    Автору респект, сэкономил кучу времени :).

    Reply
  49. adapter

    с русскими путями у меня были проблемы, поэтому я выбрал версию KDiff помладше. Она и включена в дистриб. С ней у меня русские пути стали отрабатывать нормально. Попробуй на другом компе. И общий совет — не кладите каталоги для парсинга далеко. Чем меньше уровень вложенности, длина пути, тем проще и наглядней работать. Я предлагал вариант с каталогом C:BasesAK

    изменения печ форм (mxl) через kdiff не прогоняются, потому что mxl это бинарный файл, а не текстовый. Поэтому показываю только наглядную разницу между ними. К слову сказать стандартный конфигуратор не умеет и этого, выдает многозначительно «бинарный файлы раличны». В принципе можно и mxl до НАГЛЯДНОГО текста разложить. У меня так вначале и было. Но потом убрал. Думаю это лишнее.

    Reply
  50. adapter

    Спасибо за плюсики, ответы и отзывы. Надеюсь что кому то мой труд был полезен. Надеюсь и на обратное. Вот предлагаю такую тему для обсуждения: Сделать АК-47 платным или нет? Ну и просто ваши мысли по этой теме (не только про АК 47) приветствуются здесь:

    http://www.infostart.ru/forum/forum13/topic9131/messages/

    Reply
  51. OlegD

    Что то не работает у меня.

    Запускаю Заполнить.

    Выдает.

    13:44:22 НАЧАЛО ЗАПОЛНЕНИЯ 486

    13:44:22 — чистка каталога и справочника ОбъектыМД…….

    13:44:22 — парсинг MD……..

    13:44:22 — заполнение справочника ОбъектыМД………

    13:44:23 ОКОНЧАНИЕ ЗАПОЛНЕНИЯ 486

    И все, открывает пстой справочник.

    ??? Что бы это значило?

    Reply
  52. adapter

    видимо GComp не отработал. должен еще лог парсинга выводится (если ты галку не снял). Лог пустой? Для запуска Gcomp должен лежать в одном из каталогов, прописанных в переменной Path. При первом запуске АК копирует gcomp.exe в каталог Винды. Скопируй сам или посмотри отладчиком в гл. модуле ПриНачалеРаботыСистемы

    Reply
  53. OlegD

    Так вроде получилось.

    Только ни как не удается побороть Задачу.

    Загружаемая конфигурация является приоритетной

    -Замещение Объекта: «Задача»

    -Произошла ошибка в процессе объединения конфигураций.

    Не пойму в чем причина?

    Сильная програмулина вообще то.

    Reply
  54. adapter

    ПОпробуй просто открыть результирующий МД в конфигураторе, думаю не откроется. Видимо напутал ты в объединении текстового файла «ОбъектыМетаданных», пропустил названия каких то добавленных объектов

    Reply
  55. Veduin

    Очень даже полезно и функционально. Плюс!

    Reply
  56. rasswet

    боюсь не осилю((

    Reply
  57. Veduin

    Но всетаки обьясните, зачем после получение 4 мд-шника и его сборки

    Появляются новые константы:

    IDD, УникальныйIDD, ПарольМОД, МастерОбмена, ВерсияМДФайла и др.

    а также общие реквизиты IDD..

    Они так сказать мешают, отвлекают внимание, при обновление???

    Reply
  58. adapter

    это ты где такое нашел? В примере такого точно нет. Ты описал объекты МД, которые встраивает в конфу Менеджер Обмена Данными фирмы ПиБи. Может у тебя в каком МД они есть?

    я его тоже юзаю, но чтобы мои тараканы к вам переползали это фантастика

    Reply
  59. Veduin

    Ничего принципиально нового не делал…

    Взял два типовых мд бух. 495 и 506, и рабочую конфигурацию измененную 495,

    И по инструкции стал юзать АК-47, при анализе колизий оказалось, измененно 3 документа. Собрал 4 мд в документе «Анализ колизий», и сравнил с типовым 506, но он и выдал сообщение помимо 3 документов не стыковка вот в этих константах, которые добалненны.. IDD, ПарольМод и тд…

    Вопрос и возник, зачем необходимы даные добавки??

    Reply
  60. Veduin

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

    Reply
  61. Flyyy

    Однозначно Плюс! Единственное я так и не понял как эта штука работает

    с правленными *.xml, она их получается не сохраняет, коллизия не отрабатывается, а вследствии чего не дает собрать md.

    Reply
  62. adapter

    да, c xml пока тока визуальное сравнение и ручная правка. Насчет коллиизи принимается. Подумаю об этом в новой версии. а пока вноси изменения руками, положи результат в нужное место, а по окончании удали эту строчку из дока «Анализ коллизий»

    Reply
  63. Veduin

    Раз я уже начал тестить, такого монстра, то обьясните чайнику, как же решить вопрос с ошибками

    Неуникальный числовой идентификатор — 0: и тд.

    Ну есть изменения по документу добавил 2 реквизита я и 1 типовой…

    Уже раз десять лопатил ОбъектыМетаданных.txt, все равно ругается

    ERR: Нулевой числовой идентификатор

    Reply
  64. adapter

    общий принцип работы с ОбъектыМетаданных.txt я описал выше. Если у тебя какие-то уникальности — шли файлы и давай в аську

    Reply
  65. adapter

    хотя в принципе и так можно догадаться, по русски же пишет — ИД не может равняться 0 или пустому значению.

    Reply
  66. slavik_s

    Странно, а зачем изменять вообще типовую конфигурацию и лезть в ее объекты? Не проще ли проявить смекалку и не изменяя объекты типовой все-таки делать изменения не осложняя себе жизнь решением подобных проблем.

    Скажете что иногда невозможно решить задачу не изменив типовую? Это бред.

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

    В 99,9999% случаев в объекты типовой можно вообще не вписывать ни строчки

    Reply
  67. JohnyDeath

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

    Reply
  68. slavik_s

    Есть типовые решения разрабатываемые фирмой 1С — это святое табу, которое развивает сама фирма 1С. Это решение общих учетных задач для всех без исключения, так как соответствуют требованиям налогового кодекса и ПБУ.

    Но есть и отраслевые дополнения которые должны удовлетворять специфике конкретной отрасли или конкретного предприятия — вот всю эту специфику лучше оформлять отдельной конфигурацией. А пользователи могут работать как в типовой бухгалтерии со стандартными 1С-овскими справочниками и документами, так и в отраслевой конфигурации со специально созданными отраслевыми настройками которых нет в типовой, но итоги расчетов по которым выгружаются в типовую конфу 1С. При такой политике невмешательства в типовые конфигурации они обновляются без всяких ненужных там вставок и дописок одним махом и гарантируют от неквалифицированных изменений программиста незнающего ПБУ или от заказчика незнающего методику решения учетных задач в типовых конфах, но требующих от программиста произвести ненужные изменения так как он понимает.

    Reply
  69. JohnyDeath

    (71) бред какой-то. Или я не так понял тебя.

    Мне жаль тех людей кто работает по такой схеме.

    Давай на конкретном примере. Есть торговая компания и типовая конфигурация «ТиС». Директор хочет видеть анализ продаж не только в разрезе тех измерений, которые заданы в конфигураторе, но также ещё по Менеджерам и ТорговымТочкам покупателей.

    Что я должен сделать?

    Reply
  70. adapter

    да, я сам знаю что такое вмешательство в алогритмы типовой, для меня это табу. Но за несколько лет жизни конфы без них все равно обойтись не сумел. Несмотря на то что отраслевых, отдельных конф написал еше пяток. В итоге — АК

    Reply
  71. Ish_2

    (71) В идеале было бы неплохо и к этому нужно стремится. Редко получается.

    Но если Вы предлагаете эту методу как универсальный подход , то — бред.

    Споры на эту тему отшумели. Разжевывать скучно.

    Reply
  72. Abadonna

    (71)> это святое табу, которое развивает сама фирма 1С

    Ага! И не произноси имя Нуралиева всуе :)))))))))))))))

    Reply
  73. slavik_s

    JohnyDeath (писал)

    Есть торговая компания и типовая конфигурация «ТиС». Директор хочет видеть анализ продаж не только в разрезе тех измерений, которые заданы в конфигураторе, но также ещё по Менеджерам и ТорговымТочкам покупателей.

    —————————————

    1. Создаешь новый регистр и прописываешь там нужные измерения:

    Менеджер — типа Справочник.Пользователи

    ТорговаяТочка — типа Справочник.Склады

    Ресурсы например ПродСтоимость

    2. Создаешь новый документ ПродажаПоМенеджерам допустим в котором есть реквизиты:

    Менеджер — типа Справочник.Пользователи

    ДокументПродажи — типа Документ.Реализация (это реквизит для подчинения типовому)

    3. Форму документа ПродажаПоМенеджерам рисуешь свою или перерисовываешь с типового документа «Реализация» и вставляешь реквизит Менеджер. При заполнении формы автоматически заполняешь новый типовой документ «Реализация», ПриЗаписи сохраняешь ссылку в реквизите ДокументПродажи

    4. Создаешь новый журнал для хранения документов ПродажаПоМенеджерам

    5. В модуле документа прописываешь движения по новому регистру и одновременно проводишь типовой подчиненный Документ.Реализация

    6. Отчет тоже новый который строишь по двум регистрам.

    7. При необходимости в новые объекты можно добавить еще что-либо.

    Таким образом и волки сыты и овцы целы, ведь мы не трогали объекты типовой но использовали их, поэтому у нас и книга продаж будет вестись штатными средствами.

    —————————————

    Спорить ни с кем не собираюсь, моя фирма уже более 5 лет так работает.

    Reply
  74. Арчибальд

    (76)Согласен. Для дополнительных реквизитов всегда можно воспользоваться дополнительным справочником/документом без потери сопровождения через ИТС. Однако коробочные продукты продает не только 1С, и отнюдь не все продавцы обеспечивают оперативность сопровождения. У меня вот есть в конфе ошибки в двух глобальных модулях, на эти модули завязаны куча документов, а разработчик на сообщения об ошибках не реагирует, хотя регулярно выпускает новые релизы с доработками в других местах.

    Так что бывает, что все равно без влезания обойтись не удается (73). Структурирвать, минимизировать, отстрелять из автоматического оружия.

    Reply
  75. slavik_s

    Арчибальд

    А зачем к ошибкам в двух глобальных модулях добавлять новые от неоперативного производителя? Раз не сопровождают берите сопровождение на себя полностью. Тем более производители типа РАРУСа почему то строят свои конфы на типовых 1С. Ну зачем в конфе по общепиту учет Основных средств например? Купили продукты посчитали сколько в борщ капусты вложить и списали капусту. Сам расчет в Общепите а закупку и списание капусты выгружаем в типовую бухгалтерию.

    Reply
  76. vadim_p_volkov

    (0) Собираюсь переходить с конфы «БухУчет для Украины» на «ПУБ для Украины».

    Различий масса, и вот одно из них: справочник ТМЦ, реквизит БазЕдиница. В Бухии — типа Перечисление.Единицы, в ПУБ — типа Справочник.КлассификаторЕдИзм. Возможно-ли в АК-47 настроить такое соответствие для переноса данных?

    Reply
  77. orefkov

    (76) Сильно. Только смущает во-первых объем работ, во-вторых моменты:

    «3. Форму документа ПродажаПоМенеджерам рисуешь свою или перерисовываешь с типового документа «Реализация» и вставляешь реквизит Менеджер. При заполнении формы автоматически заполняешь новый типовой документ «Реализация», ПриЗаписи сохраняешь ссылку в реквизите ДокументПродажи»

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

    Либо, если не копировать структуру данных, то трах с организацией ввода — либо криво на ТЗ, либо не криво на ТП из 1С++, что не каждые приемлют. Опять же всю логику работы формы реализации придется невозбранно копипастить, ибо ООП нету, не отнаследуешься. То есть при изменении типовой формы один хрен будешь все переносить в свой док, только уже без помощи сравнивалок, как штатных, так и нештатных.

    Дальше еще один большой трах с синхронизацией состояний нового дока с доком реализации (проведенность, изменения и тп).

    «5. В модуле документа прописываешь движения по новому регистру и одновременно проводишь типовой подчиненный Документ.Реализация»

    Это вообще за пределами штатных возможностей, только недокументированные извраты с открытием формы, которые кстати все-равно потребуют правки модуля формы типового дока. Кроме того, еще один трах, чтобы победить ситуации, когда док реализации кем-то открыт в этот момент.

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

    Reply
  78. adapter

    (79) АК 47 не предназначен для переноса данных между конфигурациями

    Reply
  79. slavik_s

    (80) Александр, безусловно объем работ однократно возрастает, но зато потом несколько лет подряд не приходится копипастить.

    3. Структуру данных копировать не нужно, а вот скопировать содержимое формы и вставить в свою форму ДА, так же тупо копируем текст модуля формы документа в модуль формы своего, затем останавливаемся на ошибках синтаксиса и разыменовываем (через точку) обращения к полям подчиненного документа. Проблему с заполнением таблицы документа (как было в штатном) решаем с помощью компоненты FormEx, получаем даже удобнее и красивее штатный документ.

    ЗАКАЗЧИКА предупреждаем о завышенной стоимости работ, но за последующие копипастенья платить каждый раз несколько лет не придется. Обычно соглашаются.

    5. Здесь я ошибся, нужно не в модуле документа это делать, а в модуле формы в процедуре ПриЗаписи() проводим подчиненный документ без проблем штатно.

    Синхронизация проведенности/непроведенности/пометкиудаления/снятияпометки решается глобальной процедурой созданной с помощью FormEx. Предварительно пишем автозагрузку дополнительного глобального модуля во внешней обработке Reklama.ert которую вставляем вместо надоедливой рекламы от 1С, заботимся о том чтобы этот файл сам себя устанавливал после затирания его при установке очередных форм отчетности 1С77.

    Reply
  80. artspeed

    хм. я так и не понял в чем дело:

    При анализации коллизий выскакивает guiddata. А в нем непонятные символы.

    и написано типа использование на свой страх и риск. что это? влияет ли на обновление конфигурации.

    и еще бывает типа такого.

    ERR: Нулевой числовой идентификатор для Документ.Приход.новый_в_шапке

    что тогда в этой ситуации делать? Баги?

    Потрашил кстати ваш пример

    Reply
  81. idw

    Под Windows 7 программа не устанавливается. 😥

    Reply
  82. idw

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

    Reply
  83. fastwriter

    Хотя сама конфигурация хорошая — эротику лучше постить на другие ресурсы (баш.орг и пр.)

    Reply
  84. artbear

    Автор, Программа полезная, но где отличие лайт и прочих версий от проф? Почему его нет в описании?

    Жду.

    Пока -1

    Reply
  85. HITDEVIL

    Задумка хорошая! Кто использовал поделитесь впечатлениями!

    Reply
  86. adapter

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

    Reply
  87. mikhailovaew

    Эх, это для 7.7… а ни в заголовке ни в разделе об этом не упомянуто…

    Reply
  88. adapter

    указано в стандартных свойствах публикации

    Платформа

    1С:Бухгалтерский учет 7.7

    Ну сейчас в шапке еще добавлю

    Reply
  89. Flight
    Reply
  90. Flight

    Вроде разобрался, не знаю правильно сделал или нет, но собралась новая конфигурация после того, как добавил в ОбъектыМетаданных.txt эти строки без айдишников:

    Перечисление.СЛПРОЖ
    Перечисление.ИЗЛВТР
    Перечисление.НЕРАБМАТЬ
    Перечисление.ПРБЛОК
    Перечисление.ПРЗАГР
    Перечисление.ПРКОНЦ
    Перечисление.ПРОВОВ
    Перечисление.ПРОЖСУПР
    Перечисление.РАБВОВ
    Перечисление.РАБЗАГР
    Перечисление.РАБЛОК
    Перечисление.РАБСВПК
    Перечисление.СЛДАПБЛ
    Перечисление.СЛПРИЗ
    Перечисление.ТРУДЛИЦО

    Показать

    Reply
  91. Jill

    Крутая штука.

    Но возник вопрос: так каким образом разрешать коллизии *.mxl?

    Ткните носом пожалуйста.

    Reply
  92. adapter

    клюшки живут? Еще где то есть масштабная промышленная эксплуатация 77? Удивлен.

    куда там носом ткнуть не помню, 6 лет назад это было. Кажется для mxl запускался отдельный механизм визуального сравнения. А бинарный файл mxl все равно надо выбрать один из готовых вариантов, автослияния как для текстов модулей нет. Толи технически не возможно, то ли собирался реализовать на след. этапах.

    Reply
  93. Jill

    (97) живут. Еще как живут. 🙂

    Со сравнением все понятно.

    Другое дело где и как выбирать этот самый вариант mxl для разрешения коллизии.

    Т.е. все коллизии были разрешены, кроме неск. mxl. Дабл. кликом в обработке сравнения я ими любуюсь и решаю что, н-р, вторая таблица мне нравится больше. А дальше… А дальше все не очевидно (по крайней мере мне и сейчас).

    Идти в объекты md, подменять таблицы, перезаполнять и снова разрешать все коллизии?

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

    Reply
  94. adapter

    уже много лет не занимаюсь 77. Нет ни баз тестовых, мд, разобранных примеров и пр. Не на чем посмотреть.

    м.б. после сборки через буфер в конфигураторе заменить? Как это в стандартном случае делалось? уже не помню 🙂

    Нашел у себя новый релиз АК-47. Визуально вроде есть изменения в лучшую сторону.

    Если кому интересно — берите в Opensource — дорабатывайте, функционал, справку, выкладывайте. Звезд мне не надо, копирайты прошу оставить.

    Reply
  95. rewer8

    А где его можно скачать? Новый анализатор коллизий? Можно ссылку

    Reply
  96. adapter

    здесь же 🙂

    Reply
  97. CheBurator

    для детей-восьмерочников (которым все нетиповое как серпом по одному месту) — придется догонять древнюю ТиС 932 дописанную/переписанную (косятк в основном без изменений, но много вставок/уточнений в типовом коде). Правильно ли я понимаю, что воспользовавшись предложенным инструментом — кучу проблем удастся решить автоматом? Понадобится ли досконально разбираться как работать к kdiff..?

    Спасибо.

    Reply
  98. adapter

    «Правильно ли я понимаю…» да

    «Понадобится ли досконально разбираться как работать к kdiff..? » нет

    🙂

    Reply
  99. CheBurator

    (103) ок. попробую.. может быть…

    Reply

Leave a Comment

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