Детализация до регистратора 1с что это
Столкнулся с такой проблемой - пользователь должен заполнят обработку, после того как заполнит - каким то образом создаються записи в РС (как я предпологаю обработка связана с каким то документом. ).
Объясните поздайлуста: Почему? и как разработчик сделал чтобы другой разработчик в РС не смог узнать о Регистраторе .
Заранее премного благодарен.
1с и фискальный регистратор
Возникла такая проблема. В документе чекККМ при проведении не выводится номер чека + к этому.
Не установлен регистратор
Всем привет. 8.2.18. БП 2.0.53.6 Такой косяк: Создал документ, который формирует проводки. При.
Регистратор для регистра
Что надо сделать, если при компиляции процедуры Процедура.
1с8+ts На Serv2008r2+фискальный Регистратор
В терминале работает 10 пользователей с разных компов. На двух компах стоят фискальные.
Вот такая картина
Объясните поздайлуста: Почему? и как разработчик сделал чтобы другой разработчик в РС не смог узнать о Регистраторе .
как я предпологаю обработка связана с каким то документом.
Заранее премного благодарен.
На форуме надо осторожно публиковаться: семь раз проверь - один раз ляпни. А то ведь можно лицо потерять
"объект Не Найден" В Поле Регистратор В Процедуре Обработкап
Добрый день! версия 1С 8.1.15.14 база УТ 10.3.9.4 серверная Абсолютно не представляю как могло.
Фискальный регистратор Атол 30Ф и собственная программа
Привет всем! Скоро придется устанавливать онлайн-кассы, выбор пал на фискальный регистратор Атол.
Фискальный регистратор, 1С через терминал и ключи для драйвера Атол
Просьба помидорами не кидать! :-[ Помогите разобраться, пожалуйста. 1С 7.7, работаем через.
Регистр сведений «Списанные материалы из эксплуатации». Почему регистр сведений, а не регистр накопления?
Существует Регистр сведений «Списанные материалы из эксплуатации». Регистр сведений предназначен.
Фискальный регистратор и 1С:Бухгалтерия
Здравствуйте, такой вопрос меня мучает можно ли Фискальный регистратор подключить к.
1с 8.2, АТОЛ и Фискальный регистратор
Добрый всем день! К сожалению, в рунете не нашел ничего по этой проблеме. У меня сложилась.
(28) ну может не все такие умные и начитаные как ты. большинство здесь только могут блеснуть умом и подколоть.. а помочь человеку мало кто..
2(29) стоп, а где здесь в этом контексте про то что не нужно указывать регистратора?
вот подвписка твоя она на какое событие повешена?
(39) делаешь также как и в обработке проведения, единственное надо писать там например так:
2(47) разница незначительна и она практического свойства.. однажды движений может не быть, или тебе покажется что их нет, и ты их не создашь. А в подписке на регистр они будут.
Поэтому лучше сделать и так и так.
(47)
Ну при записи у тебя есть набор который записывается. В нем есть регистратор. Вот его и проставляй
Задание такое, в Документ ЗаказПокупателя в форму списка, добавить 2 колонки, "СуммаОплачена", "СуммаОтгружена". Эти суммы берутся с оборотного регистра накопления "ВзаиморасчетыСКонтргентом", но только когда поле сделка не пустое.
Прицепилась к процедуре ПриПолученииДанныч:
(68) Ну делай регистр накопления. Ставь туда регистратора из исходного регистра.
Только чую я, не удастся сильно ускориться таким образом.
(71)
Прикольно. Т.е. типовой регистр ВзаиморасчетыСКонтрагентом вы оборотным сделали (хотя он регистр остатков), а вот в процедуру проведения влезать нельзя :)
Уверена, что у этот регистр не остаточный?
(74) К такому бы начальнику еще б серединник и конечник соответствующие. Вообще ништяк было бы.
Ну делай подписку, раз начальник решил. Чего уж теперь.
(80) Она много чего пишет. сначала она говорила про регистр сведений вотздесь (23) потом оказалось что я тупой, потому что в регистре сведений нету режима записи.
(68) На какое событие.
(77) +1
ИМХО, тут нужен непериодический независимый регистр сведений.
Вопрос только в какой момент туда писать данные о суммах оплаты и отгрузки.
А есть еще вариант для начала переписать дебилистические запросы из (65).
Почему, например, статус ОтпускРазблокирован не получить тоже в запросе, а не использовать для этого объектные методы СрезПослених?
вот это я вообще не понял:
(74) Блин всегда верил что в Киеве самые мега спецы Украины собрались, а попадаются такие шо мне по сравнению с ними не стыдно)))
А не проще сделать обработку журнал документов, что бы скорость нормальная была?
Мужики опять я в муках освоения. Задача такая : Делаю запрос по регистру бухгалтерии (таблица остатки и обороты). Мне нужно выводить доки регистраторы, породившие эти движения. Как это сделать? И можно ли? Вот запрос:
Нет они будут выведены выборочно, в завимости от положения звезд на небе, ну и, естественно, настроения БГ.
У меня просто вот при таком запросе ; Поле документ (т.е. регистратор пустое). Вот я и подумал : Если остаток состоит из суммы и она (порождена несколькими доками) может в этом косяк.
Смысл такой. У меня задача Отслеживать оплаты реализаций. Я хочу сумму остатка расписать по докам породившим эту цифру. Это невозможно?
Одним запросом, по-моему невозможно, хотя кто-то может меня и поправит. В любом случае, если и можно, то запрос будет очень сложный. Твоя задача не настолько тривиальна как тебе может быть кажется, если на счете 62 аналитики по документам нет.
(вот я и думаю) может заеб. ть еще выборку оборотов и загонять в этот отчет группировку по регистраторам? Реально такое? А потом точно порекомендую на proclub :-)
В виртуальной таблице ОстаткиИОбороты, к которой ты обращаешься нет данных по остаткам в разрезе документов. Поэтому как не пыжся, но таким простым путем ты эти данные не получишь.
вот я и говорю. Может как то совместить движения и остатки? Т.е. Получаем остаток. движения с рашифровкой по регистратору. Что то типа такого. Бред?
Остаток вместе с регистратором ты не получишь. Регистратор - это признак движения. Аналогичная разница, например, для регистров накопления между Измерением и Реквизитом.
Эххххх. я ж и говорю. в одном запросе получать и остатки и обороты. Остатки - цифрами, обороты движениями. И в отчет выводить остаток, потом движения в разрезе регистраторов. Вот такой вариант может прокатить?
тебе же говорят, не получишь остаток без измерения типа "документ", только обороты можно получить по регистратору, остатки никак
+ Или ты имел ввиду что можно совместить следующее: 1. Остатки 2. Движения по регистратору Тогда, конечно, можно.
А я и интересуюсь : Остатки и в этом же периоде обороты (с регистратором). А в отчет выводить результат первого (остатки), а потом обороты. Наверно раз 3-й уже эту идею говорю.
Ладно всем спасибо за участие. Буду тему продвигать (предложенную выше). Отговорите если считаете бесперспективным.
Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.
В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "///// echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1.
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.
Собственно сам скрипт:
global $wpdb2;
global $failure;
global $file_hist;
///// echo '
Старт загрузки
';
$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 '
Файл обмена с сервисными книжками не существует.
';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
>
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure) ///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '
Попытка вставить запись в лог таблицу
';
$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 '
Возврат в начало.
';
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 '
Размер файла: '.$m_size_file.'
';
///// echo '
Штамп времени файла: '.$m_mtime_file.'
';
///// echo '
Формирование запроса на выборку из лога
';
////препарируем запрос
$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 '
Возврат в начало, т.к. найдена запись в логе.
';
$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 '
Попытка вставить запись о начале загрузки в лог таблицу
';
$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 '
Очистка таблицы сервисных книжек
';
if (empty($results))
///// echo '
Ошибка очистки таблицы книжек, завершение.
';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
>
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
Детективная история
Сразу покажу на небольшом примере почему это так важно.
Пусть у нас есть начисление заработной платы за январь:
В начале февраля мы создаём ведомость на выплату зарплаты из кассы и нажимаем кнопку "Заполнить":
И получаем следующее:
Но ведь за январь:
- Начисление 50 000 рублей
- НДФЛ 6 500 рублей
- Итого к выплате 43 500 рублей
Где закралась ошибка? Что пошло не так? Неужели теперь всегда вводить сумму к выплате вручную?
Опытный бухгалтер тут же сделает оборотно-сальдовую ведомость по 70 счёту:
И будет в ещё большем недоумении, потому что по данным отчёта к выплате выходят всё те же 43 500! И откуда же взялись лишние 5 000 рублей?
Причём такая ситуация (с любыми расчётами) может произойти как в "тройке", так и в "двойке".
Сегодня я попытаюсь приоткрыть завесу тайны - почему же иногда программа ведёт себя так странно. Я расскажу как в таких случаях находить и устранять ошибку. Ближе к концу статьи мы разберёмся - откуда же взялись эти самые 5 000 рублей.
Учимся видеть регистры
При проведении документов 1С:Бухгалтерия 8 делает проводки по бухгалтерским счетам (кнопка ДтКт у любого документа):
Именно на основании этих проводок строятся все бухгалтерские отчёты: Анализ счёта, Карточка счёта, Оборотно-сальдовая ведомость.
Но есть огромный пласт данных, которые пишутся программой параллельно с проводками и используются для всего остального: заполнение КУДИР, книги покупок и продаж, регламентированной отчётности. заработной платы к выплате, наконец
Как вы уже, наверное, догадались этот пласт называется регистрами, вот он:
Я сейчас не буду вдаваться в подробности описания самих регистров, чтобы не запутать вас ещё больше.
Скажу лишь, что нам просто жизненно необходимо постепенно учиться "видеть" движения по этим регистрам, чтобы лучше понимать и, когда надо, корректировать поведение программы.
Давайте присмотримся к регистру "Зарплата к выплате" - именно он имеет смысл для решения нашей проблемы с лишними 5 000:
Мы видим две записи по этому регистру, сделанные в приход, то есть в плюс. Если пролистать экран в право, то мы увидим в первой строчке сумму к выплате "-6 500", а во второй "50 000".
Остаток по этому регистру -6 500 + 50 000 равен 43 500, который и должен попасть в документ "Ведомость на выплату из кассы", когда мы нажимаем на кнопку "Заполнить".
Ещё раз повторюсь - ведомость на выплату определяет нашу задолженность по заработной плате перед сотрудником не по 70 счёту, а по регистру "Зарплата к выплате" .
Получается мы знаем, что зарплата к выплате заполняется на основании этого регистра, но даже видя записи регистра не можем понять что не так.
Скорее всего мы не видим всей картины (может быть существуют другие записи по этому регистру) и напрашивается некий инструмент для анализа регистра подобный бухгалтерским отчётам.
Учимся анализировать регистры
И такой инструмент есть, он называется "Универсальный отчёт".
Переходим в раздел "Отчеты" пункт "Универсальный отчёт":
Выбираем тип регистра "Регистр накопления", регистр "Зарплата к выплате" и нажимаем кнопку "Сформировать":
Получилось не очень информативно:
Всё потому, что требуется предварительная настройка отчёта, нажимаем кнопку "Показать настройки" и на закладке "Группировка" добавляем поле "Сотрудник":
На закладке "Отборы" делаем отбор по нашей организации:
Нажимаем кнопку "Сформировать":
Вот это уже более интересно. Видим остаток к выплате нашему сотруднику те самые 48 500 рублей!
Снова заходим в настройки отчёта и добавляем на закладку "Показатели" новое поле "Регистратор":
Снова формируем отчёт:
Вот теперь мы прекрасно видим, что 5 000 появились как результат операции (видимо ввода остатков) 31 декабря 2014 года.
И нам нужно либо изменить эту операцию, либо вручную откорректировать регистр "Зарплата к выплате" и закрыть эти 5 000 рублей, например, 31 декабря 2015 года.
Давайте пойдём вторым путём. Итак, наша задача - сделать так, чтобы на начало 2016 года по регистру "Зарплата к выплате" не было нашей задолженности перед сотрудником.
Это делается ручной операцией.
Учимся корректировать регистры
Заходим в раздел "Операции" пункт "Операции, введенные вручную":
Создаём новую операцию концом 2015 года:
Из меню "Ещё" выбираем пункт "Выбор регистров. ":
Указываем регистр "Зарплата к выплате" и нажимаем ОК:
Переходим на появившуюся закладку регистра и делаем расход на 5 000 рублей:
Этим самым мы как бы отнимаем от регистра 5 000 рублей по сотруднику, чтобы выйти на ноль к началу 2016 года.
Проводим операцию и заново формируем универсальный отчёт:
Всё получилось! Видим, что наша ручная операция от 31.12.2015 вывела остаток в ноль и зарплата к выплате после начисления равна ожидаемым 43 500.
Замечательно. И сейчас мы проверим это в ведомости на выплату.
Но прежде я хочу обратить ваше внимание на ещё один важный момент:
Обратите внимание, что остатки на начало и на конец по группировке "Сотрудник" показывают ерунду. Это никакая не ошибка, это нюанс, который нужно учитывать, связанный с архитектурными особенностями 1с.
Запомните. В том случае, если универсальный отчёт выводится с детализацией до документа (регистратора) - остатки по группировкам будут показывать ерунду.
Если нам требуются остатки по группировке сотрудник - нужно сначала удалить из настроек добавленный нами показатель "Регистратор":
И только потом формировать отчёт:
Сейчас остатки показаны корректно.
Результат
Напоследок убедимся, что мы сделали всё правильно. Снова заходим в ведомость на выплату заработной платы за январь и нажимаем кнопку "Заполнить":
Мы молодцы, на этом пока всё
Кстати, подписывайтесь на новые уроки.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Читайте также: