… жизнь без последовательностей или как «Я» её понимаю …




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

    Начало обсуждения не читал, но как то слабо представляю связь м/у последовательностью и кодом справочника.

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

    Возьмем к примеру ЕИ. Я вижу 2 варианта.

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

    Второй вариант «помнить в уме», т.е Если …=0 тогда «шт» иначеЕсли …=1 …., (или через тот же масиив ПредставлениеЕИ=МассивЕИ[КодЕИ])

    В любом случае это не позволяет хранить информацию о других ЕИ и коэффициенте перерасчета. Т.е. 1 товар = 1ЕИ что не всегда удобно

    В любом случае, что мы выигрываем от такого кодирования?

    Reply
  2. Шёпот теней

    (1) смЕЕётесь … ?

    как правило используется две ЕИ — это штуки и килограммы и их различные комбинации типа 1Пакет = 3,4 кг или 1упаковка = 12 шт …

    как вы думаете сколько комбинаций вариантов это составит ? …

    п.с.1. повторюсь: я против универсальности … универсальность первый «друг» пере-много-изибыточности …

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

    п.с.3. даже в 1С самой универсальной из универсальных программ бухгалтерского учёта, требуется много-много ума и терпения чтобы создать «прАвильный» справочник номенклатуры …

    … вотТакоеМнение …

    Reply
  3. Alav

    (2) Никак нет.

    «Даже лягушки не просто орут в пруду — едят комаров» (с)

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

    Какое отношения имеет закодированные основные параметры номенклатуры к «Даёшь свободу «заднему числу»!»?

    Reply
  4. Шёпот теней

    (3) …

    Reply
  5. Mazaloff

    очередная пустая МУТОТА! при чем тут последовательность я так и не понел… опять автору видимо занятся не чем… шел бы лучше на завод гайки крутить, там от него государству и всем нам, пользы было бы больше…….

    — ВОТ —

    Reply
  6. tango

    Шепот, сделай дайджетс по б/п советам в твоих темах 🙂

    Прикольно было бы узнать, в чем польза г.Мазалоффу от того, что ты гайки бы крутил.

    Reply
  7. tango

    Видимо, ключевая фраза здесь:

    «государству и всем нам пользы»

    1снеги бывают такие смешные.

    Reply
  8. Mazaloff

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

    Reply
  9. tango

    «крутя гайки и прочее, он бы поднимал нам»

    Что читали?

    Reply
  10. Шёпот теней

    … интересно ?, как некоторый народ создаёт справочники номенклатуры и как его оптимизирует …

    судя по ответам некоторых товарищей НИКАК и НИКОГДА …

    даже создать иерархию папок в справочнике уже занятие не из лёгких и очень ответственных … «правильная» иерархия позволяет упростить структуру со всеми вытекающими последствиями ….

    … вотТакоеМнение …

    Reply
  11. Mazaloff

    (11) завод и гайки тебя ждут! 😉

    Reply
  12. kompas-dm

    Система классификации и кодирования — тема не новая.

    ЕЕ просто не оговорили в 1С. Дали механизм. Полный код, уровни, серии кодов.Строй свою систему и отслеживай полученное.

    Это НЕ ностальгия:

    Были в СОЮЗЕ на предприятиях такие структуры: отдел информационного обеспечения или отдел систематизации и кодирования. Работали там как простые инженеры, так и со степенями… Разрабатывались классификаторы, огромные тиражи, рассылка смежникам… Ну и где оно теперь? 😀

    В наших условиях ( я неоднократно это наблюдал ) юзеры положат на лопатки ЛЮБУЮ УМНУЮ систему кодирования через месяц, другой после запуска.

    А вот последовательности — это интересно.

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

    Не могу не вмешаться в разговор, начавшийся с 5 поста. Особенно понравилось предложение tango в (6) 🙂 Что касается кручения гаек — вряд ли пользы от этого было бы больше, чем от распугивания тараканов в мозгах.

    По статье. Она в самом деле получилась непонятной для тех, кто не в теме ветки Чебуратора. Как я понял, речь идет о том, что при хорошо спроектированном справочнике «партий» и оснащении дОлжными алгоритмами работы с элементами оного справочника можно не заботиться о Последовательности глобальной, а работать с историей элемента и окончательным состоянием этого элемента. Могу засвидетельствовать, что так оно и есть — подход мной проверен в практике учета спецодежды. Там есть и «партии», и «срок годности», и возвраты.

    Так что, воистину, чУдна 1С-ная задумка с Последовательностью. Но лучше смодреть на нее издали 😎

    Reply
  14. Шёпот теней

    (13) … хм …

    1. … универсальность — механизм затратный …

    2. … решение проблемы последовательностей без решения проблемы организации данных НЕвозможен… или пользуйтесь механизмами 1С …

    об этом, с моей точки зрения, и шла речь в ветки ЧЕ … о «последовательностях…»

    п.с. по поводу «лопаток» — юзеры и 1С-кую универсальность «кладут» с таким же и большим успехом …

    … читаем ветку ЧЕ : http://infostart.ru/forum/messages/forum11/topic28666/

    … ВОТ …

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

    (13) Да, организовать на фирме классификатор, да еще и поддерживать его жизнеспособность — задача неподъемная. К сожалению 🙁

    Однако и без «многозначительного» кода справочник можно хорошо (или плохо) организовать.

    Reply
  16. anig99

    В свое время писал базу (не 1с, надеюсь её таки дописать)… Там тоже устраивал составные коды для связки таблиц… Даже чуть дальше пошел… Там же шифровал некоторые признаки в двоичном коде… Т.е. 2 или 3 знака в коде разлагались в двоичное представление, а это двоичное представление анализировалось… Например 100010 — превращалось в Это живое неразумное одноклеточное безядерное ископаемое без описания.

    Reply
  17. Шёпот теней

    (17) …

    … мы правильно понимаем друг-друга ?: «код» всё таки для отвязки от таблиц … для минимизации ссылок таблиц друг на друга …

    … в данном случае чтобы избавиться от части «таскающейся» информации за элементом номенклатуры …

    … такой же принцип и у Владимира в указанной по ссылке ветке (если конечно я правильно его понимаю) …

    … вот …

    Reply
  18. Ish_2

    Прочитал про «нормализацию данных» от Шепота.Хмыкнул.

    Как появилась «нормализация данных» ? Почему она написана кровью разработчиков БД ?

    Через что люди прошли , чтобы выработать принципы нормализации.

    Почему составное поле в качестве ключа — это зло , причем давно известное ?

    Кто только не пытался похитрить и что-то выиграть в деле использования составных полей !

    Даже автомобильные номера в России .. и те вон тоже представляют собой составные поля .

    Красиво задумывалось : составное поле (Авт.номер) содержит номер региона.

    Что в итоге получили ? Для Краснодарского края номера теперь 23 и 93, для Москвы уже есть номер 177.

    Само собой , составители Авт. номеров — люди глупые — не знают правил нормализации.

    Но ты то , Шепот , специалист по 1с , как дошел до такой хрени ?

    Составной код для номенклатуры… Эти темы заезжены давно.

    Reply
  19. MRAK

    (17), (18) по-мойму всеж лучше хранить ссылки на таблицы с видами ископаемых, чем в хранимках [ЖЕСТКО В КОДЕ] их вычислять по названиям, тупо в коде и прописанным…

    вроде как давно де-факто…

    Reply
  20. Шёпот теней

    везде и всюду вопрос упирается только в одно — в ИДЕЮ …

    а идеЯ «тут» не в составном коде …

    … вОоОт …

    п.с. читаем внимательнее ссылка на ветку ЧЕ и читаем внимательнее статью … вот …

    Reply
  21. anig99

    (20) цель была сократить размер базы по-максимуму

    Reply
  22. Ish_2

    (22) Вот-вот ..

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

    Reply
  23. tango

    где нормализация и где 1с

    Reply
  24. Шёпот теней

    (24) … 1С пытается ОЛАПиться … т.е. совместить ведение базы (минимальность) и отчётность (избыточность) в одной БД …

    что поделать … универсальность вещи дорогая …

    … вот …

    Reply
  25. Моха

    СмИшная ветка.

    ШТ, ты хочешь из 1С сделать фронт? Ну возьми тогда логику работы касс в супермаркетах. Чё лисапеды имени Г1С изобретать то.

    Прим. Исходный пост фийеричен.

    Reply
  26. larisab

    (26)

    Исходный пост фийеричен

    😀 😀 😀

    Я вот все представляю — сидят дядьки на работе, собирают в гормошку лоб, силятся понять — а что же там такого умного зарыто в постах Шепота?

    Ухохочессссиии… (с)

    Вот… (с)

    Reply
  27. Шёпот теней

    (26)…

    (27)…

    … умный в гору не пойдёт — умный гору обойдёт …

    … просто не значит хуже …

    … хи-хи-хи …

    Reply
  28. poppy

    Статья (статья ли?) не о последовательностях. И не о «заднем числе».

    Ссылка на Владимира (hogik) только прикрытие. Остальное, имхо — лажа.

    Reply
  29. Шёпот теней

    (29) .. здрАсьте …

    в статье предлагается оформлять каждый приход новой строкой спрНоменклатура … заодно решить и партионный учёт … и будет возможность списывать партии какую хочешь а не какую лифо-фифо подсунет … и многое другое в том числе и «заднее число» …

    … жаль …

    … вот …

    Reply
  30. poppy

    (30) И тебе ЗДРаСТЬЕ…

    В статье предлагается? Ты ее читал? Вслух?

    Да, предлагается формировать код справочника. И что? Чем это предложение лучше старого алгоритма:

    НовыйКод = ПоследнийКод+1; ❓

    В чем связь кода справочника и использование механизма «Последовательности»? Ты читал, о чем пишет Владимир (hogik)? Там есть умные мысли, главное — они работают. Но они о другом.

    ВооОооТ, таКие МыСлллиии…

    Reply
  31. Шёпот теней

    (31) … ты тАмА то же с критики начинала … а закончилось «есть умные мысли» … может и здесь найдёшь — если поишешь …

    код+1 … не позволяет отказаться от «шлейфа» тянушихся за элементом данных … а данная кодировка позволяет избавиться …

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

    п.с. спорить с тобой не буду … слишком у меня к тебе отношение Уважительное … но и писать пояснения не буду … нет желания разобраться и критиковать предметно — твоЁ прАво … такое у меня мнение о твЁм комментарии …

    … жАль …

    … вот …

    Reply
  32. Моха
    код+1 … не позволяет отказаться от «шлейфа» тянушихся за элементом данных … а данная кодировка позволяет избавиться …

    :))))))))))))))) Шо за шлейф? :))))))))))))))) А если я к коду прибавлю первым символом букву «Ы большое», шлейф уменьшится? :)))))))))))))))))))

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

    По-моему он конкретно написал, что загоняет. 1С загоняет больше.

    … здесь тот же принцип…. только зашёл с другой стороны …

    Те же помидоры :)))))))))))))))

    Reply
  33. Моха

    +(33) Сделайте 3, 4, 5 полей и по ним ключ. Как минимум будет легче данные из такого «кода» доставать.

    Reply
  34. Моха

    Прим. Не, ржачная ветка.

    Reply
  35. Шёпот теней

    Моха — твоя тяга к полям мне известна ещё с твоих советов по согласованию справочников …

    опять 1С-овская ухмылка — типа: «Сделайте 3, 4, 5 полей и по ним ключ» и началось плодить колонки без нужды и дела … смЕЕЕшно-с …

    ветка не ржачная …. хотелось бы конкретики а не ржачных советов …

    … вОт …

    Reply
  36. Моха

    (36) Конечно, без нужды. Из такого кода афигенно удобно выбирать группы товаров. Берешь код, из него выцепляешь 5-й и 6-й символы, сравниваешь с требуемыми символами и выводишь в отчет. Быстро и удобно :)))))))))).

    Особенно интересен вопрос типа: Шерстяные носки будем кодировать как «изделия из шерсти» с подкодом «ИШ» или как «носки» с подкодом «НС»?

    Reply
  37. Моха

    +(37) Отклассифицировался я ужо.

    Reply
  38. Моха

    +(37) И как потом удобно будет в отчетах смотреть отдельно «изделия из шерсти» и «носки». Страшно даже запрос такой писать. Скорость будет супер.

    Reply
  39. poppy

    (32) Да, есть критика, но она касается вопроса позиционирования той схемы, но не самой схемы.

    код+1 … не позволяет отказаться от «шлейфа» тянушихся за элементом данных … а данная кодировка позволяет избавиться …

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

    В твоих словах я вижу призыв с денормализации http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BD%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D0­%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F

    Извини, но искать в таких кракозябрах… Читать сложно, не то что искать…

    … жАль …

    … вот …

    Reply
  40. Alav

    А что завтра? Объединить общий журнал и табличную часть документа в одну таблицу?

    Reply
  41. Ish_2

    (24) Михаил, построение любой реальной БД есть отклонение от принципов нормализации. Разумеется.

    Дьявол сидит в деталях : в чем конкретно эти принципы нарушены и что это дало ?

    Ты вместо того , чтобы Шепоту честно сказать : Не занимайся фигнёй !,

    — делаешь ему медвежью услугу : оставляешь ему иллюзии , дескать, в этой статье есть что-то ценное.

    Reply
  42. Шёпот теней

    (40) и о нормализации говорит Поппи которая оправдывала избыточность данных в одном из комментариев в ветке ЧЕ «о последовательнотях» …? …!

    (41) а ВЫ, что боитесь … если это требует логика хозяйственных операций …

    смЕЕЕшно-с … сейчас у бухов если спросить какие нужно делать проводки — лни смотрят в 1С …. видимо пришло время так же говорить и про программистов — они то же смотрят в 1С а не думают головой …

    (42) … ты «ПЛУТарх» известный … а про «серединный» путь к чему …?

    … ВОТтакоеМНЕНИЕ …

    Reply
  43. tango

    (43) Шепоту я даю одно — уверенность, что как бы его ни пинали, какую бы он пургу ни гнал, я — с ним. 😎

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

    (44) Аналогично 😀

    Reply
  45. larisab

    (44)

    уверенность, что как бы его ни пинали, какую бы он пургу ни гнал, я — с ним.

    Бедный… смотри, как бы не разочароваться 😉

    (45) И тут — аналогично…

    Reply
  46. tango

    (46) в чём?

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

    (46) 😮

    Reply
  48. larisab

    (47) В очаровашке ШТ 😀

    Reply
  49. tango

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

    Завели карточку — состояние «Неопределено»

    Купили — «Имеется в наличии»

    Продаем — лезем в регистр, убеждаемся в наличии, продаем, ставим «Продано».

    Лезем продавать во вчерашнее число, тырь в регистр, а там — «Продано».

    Оно, конешно, база растет, на каждый юнит своя запись. Зато без пересчетов, справочников партий и фиг его знает еще чего.

    Reply
  50. tango

    (49) тостостерон не так важен между нами двумя

    Reply
  51. larisab

    (51) Неужели? а мне показалось, что в 44 — признание в любви… скрытая страсть 😀 😀 😀

    Одна фраза «даю уверенность» чего стоит ❗ ❗ ❗

    Reply
  52. Ish_2

    (50) Сейчас удивлю . Открытием.

    Купили :

    Накладная № 1 — 2 щетки,

    Накладная № 2 — 4 щетки,

    Накладная № 3 — 6 щетки,

    По- вашему — завели три карточки . Регистра партий у нас нет.

    Продаем 8 щеток.

    И что ? Списываем по ФИФО — деваться некуда.

    Накладная № 1 — 2 щетки,

    Накладная № 2 — 4 щетки,

    Накладная № 3 — 2 щетки,

    В расходной накладной нужно указать товар и его количество . Какой товар мы укажем ? Из какой накладной-карточки ? Или повеселим

    покупателя 3 позициями ?

    Потом Бухгалтер зашла задним числом и в накладной № 1 убрала 2 щетки и перенесла их в накладные №2 и №3 — Мы что -то должны менять в расходной накладной ? Или нет ?

    Механизм последовательностей — есть общее универсальное решение.

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

    Флаг вам в руки. Но НЕ лезьте в обобщения.

    Reply
  53. Шёпот теней

    (53) … гыыы … теперь добавь цену и характеристику ну и ещё чё-нить…

    … уххххИхИкаеееешьсссиии …

    … вот …

    Reply
  54. Шёпот теней

    (44), (45) … хотелось бы за «пургу» в темечЬко … да-ссс … в темечЬко … чтобы не нЁс …

    … за всё остальное огромное спАсибо …

    … ВОТ …

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

    (53)

    1. Не упоминай имени Арчибальдова всуе…

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

    3. Согласно Фрейду, появление в сновидениях щетки столь же симптоматично, как и черного зонтика 😮

    По делу. Механизм последовательностей есть затратное неуниверсальное (частное) решение. Генезис его в том, что 1С объединила в одно документ-основание и документ-двигатель, которые имеют различные сущности. К примеру, документ-основание может действовать или быть отмененным. Измененным он быть не может, в отличие от Документа в понятиях 1С.

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

    Reply
  56. Моха
    (53)Флаг вам в руки. Но НЕ лезьте в обобщения.

    Хочется обработать эту фразу в стиле Вадима Галыгина :)))))))).

    (56)Механизм последовательностей есть затратное неуниверсальное (частное) решение.

    Механизм последовательностей указывает всего лишь на то, что последующие документы ЗАВИСЯТ ИЛИ МОГУТ ЗАВИСИТЬ от ПРЕДЫДУЩИХ. Механизм МОЖЕТ ПОМОЧЬ определить, КАКИЕ ДОКУМЕНТЫ НАДО ЗАНОВО ОБРАБОТАТЬ, ЕСЛИ ИЗМЕНЕН СТАРЫЙ ДОКУМЕНТ. Не надо больше ничего вкладывать в понятие последовательностей.

    Reply
  57. Моха
    Универсальным и единственным способом учета имеющейся сущности является фиксация истории движения этой сущности, а не последовательность отражения этих движений.

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

    Reply
  58. Моха
    (56)2. Не без партий, а без последовательностей документов…

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

    Reply
  59. tango

    карточка одна

    записей в регистре — на каждый юнит, в случае (53) — 2+4+6 = 12 записей

    **

    удивительный ты наш

    **

    за темечко ответишь

    Reply
  60. Ish_2

    (56)

    1. Виноват, сую ..туда-сюда.

    2. Ок.

    3. Не пугай.

    Конечно, вы с Фрейдом — компьютерщики умные, грамотные ..

    А скажи мне , Арчибальд :

    «К примеру, документ-основание может действовать или быть отмененным. Измененным он быть не может, в отличие от Документа в понятиях 1С. »

    Здесь ты предлагаешь запрет на изменение «документа-основания» задним числом ?

    Пока такая революция не свершилась, ответь :

    Как ты будешь выкручиваться в ситуации (53) — изменения задним числом ?

    Какой механизм задействуешь ?

    Reply
  61. tango

    в регистре измерение Номенклатура и два ресурса — ДокПрихода, ДокРасхода.

    Если тетя клава херит поступление двух шеток, а они уже проданы, то запись не удаляется, но очищается ресурс ДокПрихода.

    Тетя клава сует по одной щетке в два других прихода, перепроводит — смотрим скока щеток из ТЧ уже есть в регистре, находим, что одну подсунули только что. тогда сначала ищем записи по щетке без Прихода, если находим — суюм туда, не находим — пищем новую запись.

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

    (57, 61)

    От же блин, пока писал пост, ИС забыл, что я зарегистрирован.

    Итак, заново.

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

    Документ 1С (Д1) сваливает в одно дату документа и дату движения. Это допущение, основаное на утопическом (частном!) предположении «все хорошо» как раз и засталяет бороться с проблемой «заднего числа». Т.е. как обычно: создали проблему, начинаем ее героически преодолевать. Механизм последовательности придумывать.

    Как в (57) «для приведения ненормальной базы данных в норму».

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

    Reply
  63. tango

    Арчи, не м.б. «нормально организованная база» в стране пребывания. Потому что не м.б. в оной стране «нормально организованная бизнес».

    Reply
  64. Моха
    Документ-основание, юридический, (ДО) составляется по реальному состоянию дел на момент составления.

    Откуда инфа о реальном состоянии дел? И что такое «момент составления», начало составления или окончание, конец проведения (фиксации движений, букирования и т.п.)?

    никаких последовательностей в природе не существует

    Кто бы спорил. Это всего лишь вспомогательный механизм. Его неправильное понимание и/или использование портит жизнь.

    Документ 1С (Д1) сваливает в одно дату документа и дату движения. Это допущение, основаное на утопическом (частном!) предположении «все хорошо» как раз и засталяет бороться с проблемой «заднего числа».

    ОК. Давайте возьмем 120 дат. Что изменилось?

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

    Кто бы спорил. Нормально сделанный автомобиль в ремонте не нуждается.

    Reply
  65. Ish_2

    (63) Красиво как !

    Итак , из твоих слов вытекает :

    бумажный документ (ДО) где-то должен быть зарегистрирован, но без движения по регистрам учета , т.е. «система» не знает есть ли товар на остатке и лишь фиксирует факт наличия такого документа .

    Вопрос :

    Менеджер или кладовщик должен ответить покупателю — есть ли такой товар на складе ? Как он это сделает ?

    1. Откроет папку регистрации и начнет просматривать все зарегистрированные документы ?

    2. Побежит на склад и проверит «физическое наличие» ?

    Арчибальд — ты странный мужчина…

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

    (66) Система как раз знает, есть ли товар на складе. Иначе откуда возьмется потребность во внесении изменений «задним числом».

    Регистрируется именно текущее, «сейчасошнее» положение дел.

    Т.е. вместо «изменен расход от 01.04.09»

    пишется «сегодня, 18.12.09 отменено оформление расхода за 01.04.09 (вернулось столько-то и столько-то) и по итогу этого возврата оформлен расход за о1.04.09 на столько-то». Остатки актуальны всегда!

    Reply
  67. Ish_2

    (67) Классический учет как на Западе. Если не существует проблемы «заднего числа».

    Ты теоретизируешь : как бы было всё хорошо , если бы было всё хорошо.

    А Фирма 1с исходит из реалий.

    «Заднее число » есть и будет.

    И если исходить из реалий , а не из тех или иных соображений :

    Предложенный фирмой 1с механизм последовательностей есть наименьшее зло.

    Reply
  68. KapasMordorov

    (56)

    Документ — сущность, состоящая из других сущностей.

    И когда документ отсторнировали, то оказывается, что эти сущности входят в другие документы.

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

    Впрочем, если отменить регистры, то и последовательности не нужны.

    Каждый отчет будет запускать алгоритм расчета остатков.

    Для остального -олап. Собственно, и для отчетов должен быть он же.

    Но рынок почему-то выбирает 1С.

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

    (68) С чего ты взял, что на Западе так? Смотрел я на Аксапту — ничего похожего.

    Из каких это реалий исходит фирма 1С, ставя документ на временнУю ось? В реальности (в жизни) у документа есть «момент проведения», т.е. занесения сведений в БД (неважно, автоматизированную или нет), и «момент отчета» — в вашей терминологии «заднее число».

    «Предложенный фирмой 1с механизм последовательностей есть наименьшее зло»… для борьбы с предложенным фирмой 1С механизмом привязки документов к единственной точкой на оси времени.

    Reply
  70. Ish_2

    (69)

    «Впрочем, если отменить регистры, то и последовательности не нужны. »

    Неверно.

    Наличие или осутствие регистров ничего не меняет в проблеме «заднего числа и небходимости последовательностей..

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

    А есть при этом регистр или нет — НЕВАЖНО.

    Reply
  71. Ish_2

    (70)

    1. фирма 1с Для решения проблемы «заднего числа» предлагает мезанизм последовательностей и перепроведение документов.

    Исправление одного документа ведет к исправлению движений других документов.

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

    Последующие документы за исправленным и зависящие от него не исправляются .

    Я правильно понял ?

    Reply
  72. tango

    Арчи намекает, что механизм мог бы быть по-проще

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

    (72) Бухгалтеры не имеют права изменять документы задним числом. Это не предложение Арчибальда, а законодательно закрепленное правило бухучета. ДО не меняется, он подшит. Сторно имеет сегодняшнюю дату, а не дату документа. Документ, который создается взамен сторнированного, исходит из реалий, возникших после сторнирования. А Д1 должен иметь ссылки как на ДО, так и на его сторно+замену. Т.е. 1+2N ссылок. Разумно держать эти ссылки с справочнике с условным названием «ТекущееСостояниеПартий» или «НоменклатураШёпотаТеней».

    Перепроведение в каких-то случаях может потребоваться. Но перепроведение в пределах элемента упомянутого справочника, а не в пределах отрезка времени.

    Reply
  74. Моха
    Система как раз знает, есть ли товар на складе.

    В миру это называют корректировками. Запросы к базе, знаешь как изменятся? Чтобы получить остаток товара на 01.06 мне надо будет получить отстаток на 01.06 + прошерстить все корректировки по базе. «Прэлэстно, прэлестно, прэлэстно то как …» (с) Эдуард Суровый.

    Reply
  75. Моха
    Бухгалтеры не имеют права изменять документы задним числом.

    Автомобили не имеют права сталкиваться, а самолеты падать. Стоит ли содержать МЧС?

    Reply
  76. Ish_2

    (74) Понятно.

    Ты призываешь бухгалтеров соблюдать законодательство.

    Кому-то смешно, кому-то грустно.

    Последовательность в 8-ке имеет измерения . Это значит , что будут перепроведены не все документы за период. А только те документы за период у которых соответсвующий реквизит равен измерению последовательности.

    Вообщем , переходи на 8-ку.

    Я дунул в свою любимую дуделку !

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

    (75) На кой черт мне шерстить корректировки если мне нужно получить один результат всех корректировок? Он у меня в справочнике лежит. Всегда. И совпадает с реальностью (а если выявлено несовпадение, то я корректировку сразу сделаю).

    Все становится проще, если вылезти из кармана 1С и осмотреться.

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

    (77) Ага, был просто монстр, стал многомерным. Был квадратный трехчлен, стал гиперкубическим оченьмногочленом. Полиции нравов на тебя нет 😳

    Reply
  79. KapasMordorov

    (71)

    Не совсем согласен. Расположение документов по времени не является «последовательностью» в понятиях 1С.

    Возьмем в конце концов для примера ЗУП. Там есть последовательности. Кадровых документов. Не расчетных.

    Т.е. можно без них обходиться.

    Reply
  80. Моха

    (78) В справочнике? Всегда? На все даты? Одно значение? Ай малацца! Я тоже так могу. Даже корректировки не надо. Рихтуй помаленьку цифирьку в справочнике и все.

    Reply
  81. Ish_2

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

    Такое в данный мо

    Reply
  82. Моха

    Ну и какая мнэ разница, рихтануть док или цифирю в справочник тыкнуть?

    Reply
  83. Моха

    (82) Нетрудно. 8-ка дает такую возможность. Гемор, правда, ИМХО.

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

    (82) Почему же трудно представить? Ветка Че, да и эта статья как раз об этом. Держишь движения элемента справочника в самом элементе — и все!

    Говорю же, частный случай такого подхода у меня реализован. И выложен.

    Reply
  85. Ish_2

    (83) Так трудно или нет ? А у тебя выходит : нетрудно ,но гемор.

    Речь идет , конечно, о типовых решениях.

    Reply
  86. Моха
    (85)Держишь движения элемента справочника в самом элементе

    Это чудо великое. Если держать движения в регистре, то все плохо, крокодил не ловится, не растет кокос. Но!!! … Если!!! … записать все движения в документ!!! … То сразу получим прибавление мощи в 10 раз!!!

    Reply
  87. Моха

    (86) Трудно переписать типовую :).

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

    (87)

    Если держать движения в регистре, то все плохо,

    Не в регистре а в регистре1С. А если движения записать в нормальный регистр, то да, прибавления мощи на прядок.

    Reply
  89. Моха

    (89) Могу продать нормальный регистр. Только прийдется перейти на 8-ку. Называется регистр сведений (тупотабличка).

    Ремюзирую: База «Моя мечта» под соусом Арчи. Ресепт.

    Берем базу. Делим на основную и корректировочную. В основную пишем все «как есть». А корректировочную корректируем по мере потребностей. Глухой ночкой можно сливать корректировочную в основную, правильно объединяя данные.

    Эт реально база моей мечты. Только причем тут последовательности? И хде мегаускорение?

    Reply
  90. Ish_2

    (89) Прочитал !

    «Не в регистре а в регистре1С. А если движения записать в нормальный регистр, то да, прибавления мощи на прядок.»

    Мда..

    Арчибальд , говорю тебе : перешел бы ты на 8-ку. А ?

    Уверен , ты бы воздержался от половины высказыаний и ветка Че тебя бы не заинтересовала.

    Глянул ее мельком .

    А что?… не было бы 8-ки ,вероятно, было бы нескучно.

    Reply
  91. hogik

    (91)

    «перешел бы ты на 8-ку.»

    — А какая разница? Вот текст из «1С 8.х»:

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

    …система 1С:Предприятие имеет механизмы, позволяющие отслеживать правильность состояния учета. …система 1С:Предприятие способна отследить, повлияют ли внесенные нами изменения на последующие проведенные документы, и если это так, система способна перепровести необходимые документы.»

    А в (63) сообщении написано:

    «Движения (реальные) происходят после появления документа (без накладной товар не отпускается), никаких последовательностей в природе не существует.»

    В определении от 1С:

    1) Документ вносит изменение в состояние УЧЕТА, а пытается отразит ФАКТИЧЕСКУЮ последовательность событий.

    2) А «механизм» позволяет отследить влияние изменений одного документа на последующие проведенный документы. Т.е., например, если мы отгрузили не тот товар в первом документе и исправляем его задним числом, то это может повлиять на отгрузку товара в последующих документах? Не думаю. И что изменится, если мы выполним перепроведение последующих документов без их изменения ручками? Т.е. процесс перепроведения никак не улучшает (не исправляет) реальную картину торговли…

    Reply
  92. Ish_2

    (92) Механизм последовательность — НЕ УЛУЧШАЕТ реальную картину торговли , а служит прежде всего для правильного ведения партионного учета и расчета себестоимости при возможности изменения документов «задним числом».

    Арчибальд вон на полном серьезе предложил свой «механизм» :

    бухгалтерам исправиться и не хулиганить «в заднем числе».

    А цитата :

    «Движения (реальные) происходят после появления документа (без накладной товар не отпускается), никаких последовательностей в природе не существует.»

    — может потрясти как глубиной мысли так и полным отсутсвием оной.

    В зависимости от того, кто её читает.

    Reply
  93. hogik

    (93)

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

    «А цитата :…. может потрясти как глубиной мысли так и полным отсутсвием оной. В зависимости от того, кто её читает.»

    — Лично меня она никак не потрясает. Т.к. я с ней полностью согласен. И не раз высказывал эту мысль на данном ресурсе. Да и раньше, по жизни, высказывал…

    P.S.

    И еще. Читайте, пожалуйста, внимательнее.

    У меня нигде не написано, что » Механизм последовательность — НЕ УЛУЧШАЕТ реальную картину торговли». У меня написано: «процесс перепроведения никак не улучшает (не исправляет) реальную картину торговли…».

    Reply
  94. Ish_2

    (94)

    «А собственно расчет себестоимости никак не влияет (и не требуется) на реальный процесс торговли (пока!!!). И ради ненужных расчетов этой себестоимости, думаю, не имеет смысл ухудшать реальный процесс торговли.»

    Сломать сложившуюся практику ведения учета на программных продуктах 1с ?

    Хм.. — А что ? Почему не посудачить ?

    Только вот у меня замах пожиже — полет пониже . Виноват.

    Reply
  95. hogik

    (95)

    «Сломать сложившуюся практику ведения учета»

    — Если появится интерес — посмотрите ветку форума от Сергея («ЧЕ»). Там и это немного обсуждалось. Думаю, и в данной теме начинается обсуждение именно этого… 😉

    Reply
  96. Ish_2

    (96) Не-а. Воздержусь.

    Такие темы — для Шепота, а я робею.

    Reply
  97. Шёпот теней

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

    1С стоит на позициях максимальной универсальности, исходит из потребностей сверх крупных предприятий и огоромным желанием выжить — под это дело они и «точат» свои конфигурации … и во-всю наслаждаются монополизацией рынка …

    п.с.1.

    судя по всему остальные версии 1С будут ещё хуже для использования малыми, средними и крупными предприятиями … очень затратны … что впрочем и наблюдается по 8.2. …

    п.с.2.

    было бы интереснее обсуждать не преимущества 1С — они очевидны … а возможности реализации более простых механизмов ведения «свободного» учёта … «свободного» — от заднего числа или «независимости» — от заднего числа или …

    п.с.3.

    исходя из п.с.2. — Исх_2 могу посоветовать только одно, для его смелости, не меньше говорить но больше делать …

    … вот …

    Reply
  98. Шёпот теней

    … дАвАйте попробуем подойте к проблеме «независимости от заднего числа» с позиций управления …

    1. управление — это вход, выход и обратная связь …

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

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

    вывод1. механизмы 1С, в виду своей универсальности не предполагают «частных» решений … и всЁ и сразу и много …

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

    вывод3. уменьшение обратных связей с умением увидеть последствия — даст нам знание что можно изменять а что уже нельзя изменить (а если и менять то мы уже точно знаем последствия «разрушения» при таких изменениях) …

    … ВоТ …

    п.с. вывод3. — есть мысли всех кто рано или поздно приходит к пониманию о «порядках» в консерватории …

    … вОт …

    Reply
  99. Ish_2

    (99) Набор слов.

    Reply

Leave a Comment

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