• Почему возникает ошибка при восстановлении БД?

    @Dementor
    программист, архитектор, аналитик
    Попробуйте сделать архив с явным указанием кодировки UTF8.

    -E encoding
    --encoding=encoding
    Create the dump in the specified character set encoding. By default, the dump is created in the database encoding. (Another way to get the same result is to set the PGCLIENTENCODING environment variable to the desired dump encoding.)
    Ответ написан
  • Откуда у меня в отчете динамики продаж появляется непонятная цифра в колонке закупочной цене?

    @Dementor
    программист, архитектор, аналитик
    Это вопрос для экстрасенсов. Если хотите помощи в будущем, то постарайтесь излагать свои мысли более связно, приводите факты и просите конкретного ответа.

    На такой сумбур могу ответить только в общих чертах:
    1) Себестоимость = закупка (или стоимость производства) + накладные расходы. Другими словами почти всегда себестоимость не равна цене в прайсе поставщика. Особенно при импорте, когда нужно учитывать сумму растаможки.
    2) В отчете по продажам имеет смысл только полная себестоимость реализованных товаров, что бы анализировать наценку. Вот если бы вы делали отчет по закупкам, то там можно было бы показать цены из прайсов закупки, но только в одной из нескольких колонок - доп расходы тоже чрезвычайно важны (вполне может быть что поставщик с более дорогим товаром сам оказывает транспортные услуги и окончательная цена приобретения может оказаться ниже чем при самостоятельной транспортировке).
    Ответ написан
    Комментировать
  • Как можно скриптом удалить базу с сервера 1С:Предприятия?

    @Dementor
    программист, архитектор, аналитик
    Только что пролистал список всех возможных параметров командной строки - такой возможности тут нет. Хотя с другой стороны она ведь особо и не нужна. Это при создании новой базы некоторая структура БД должна быть создана платформой, даже при пустой конфигурации. А вот при удалении никакой работы платформы уже не нужно - удаляй что нужно и не парься.

    В случае PostgreSQL достаточно выполнить dropdb. Ну и из текстового файла со списком баз (ibases.v8i) не забываем удалить ставшую ненужной запись.
    Ответ написан
  • Как сделатьPOST запрос из 1С к API сайта?

    @Dementor
    программист, архитектор, аналитик
    Для начала вам нужно самим разобраться как файлы отправляются в сообщениях HTTP. Посмотрите RFC-1867, где описаны способы отправки файлов.

    В вашем случае вы даже не пытаетесь отправлять файл. Вы отправляете вместо файла строчку "&req=test" (которую, как я подозреваю, вообще нужно было отправлять в конце адреса, как GET-параметр), а в заголовке пакета пишете путь к файлу на вашем компьютере. Что может сервер сделать с вашим локальным путем?

    Рекомендую прочесть статью https://infostart.ru/public/20017/ и особенно ее комментарии (под конец там будет пример кода для платформы 8.3 без использования промежуточных временных файлов).
    Ответ написан
  • Возможно ли экспортировать код 1с на какой либо веб язык?

    @Dementor
    программист, архитектор, аналитик
    Вопрос такой: Есть самописная конфигурация 1С, нужно её как то экспортировать в веб приложение, существуют ли какие либо автоматизированные средства для этого? Какой веб движок можно задействовать, и много ли придется допиливать, если вообще возможно?

    Короткий ответ - Нет.

    Посудите сами - если бы это было возможно, то этим бы все массово пользовались. Тысячи же людей мечтают о подобной шаре. С одной стороны, разработка на 1С очень проста - всего за день можно получить структуру БД со всеми связями и индексами, удобный пользовательский интерфейс для всех программных объектов и очень гибкие информативные отчеты. Это результат более чем двадцатилетней работы разработчиков платформы, но за свой труд 1С требует покупку лицензий пользователями (странно, выходцы из СССР, а ведут себя как обычные западные капиталисты). И эта вторая сторона этой медали для многих кусается. (Кастомизация среди причин желаний уйти на втором месте, так как хоть дефолтные стили не очень, но для бизнес-программ важнее удобство, а не красота).

    Универсального решения не существует. Каждый, кто ступает на этот путь, делает свой собственный "велосипед", которым потом обычно не делится. Чуть выше Константин дал вам ссылку на проект "metadata.js", но хочу сразу вам привести позицию его создателя Евгения Малярова, которую он несколько раз высказывал в различных обсуждениях своей работы: metadata.js - это про замену 1С, а про расширение функциональности; если 1С устраивает, то переходить нет смысла.
    Ответ написан
    Комментировать
  • Как вклинить в список выбора свой флажок (1С)?

    @Dementor
    программист, архитектор, аналитик
    Загуглил информацию по вашей версии ЗУПа - оказывается она снята с поддержки. Вы точно хотите ее переписывать и вручную самостоятельно реализовывать функционал при изменении требований к учету?

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

    На форму вашего элемента форма (который типа СправочникСписок) добавляем новую колонку для флажка (без пути к данным). Далее опишем обработчик этого элемента формы ПриПолученииДанных, где в коде обратимся в ваш новый регистр РуководителиОтделов и, в случае нахождения там сотрудника по текущему отделу, устанавливаем флажек, а иначе снимаем.

    Установку в базе можно сделать в обработчике ПриВыборе, в котором анализируем текущую колонку и если кликали по флажку, то отказываемся от стандартной обработки и удаляем/добавляем запись в вашем регистре РуководителиОтделов.
    Ответ написан
  • Отправка из 1C POST запроса с файлом - как сформировать тело запроса?

    @Dementor
    программист, архитектор, аналитик
    Если вы не имитируете отправку данных формы методом POST, то ничего нового изобретать не нужно. Вот пример кода с передачей по POST какой-то строки:
    Соединение = Новый HTTPСоединение(Сервер, Порт);
    ЗапросСервера = Новый HTTPЗапрос(ПутьНаСервере);
    ЗапросСервера.УстановитьТелоИзСтроки(ТелоЗапроса);
    ОтветСервера = Соединение.ВызватьHTTPМетод("POST", ЗапросСервера);
    ТелоОтвета = ОтветСервера.ПолучитьТелоКакСтроку();
    КодОтвета = ОтветСервера.КодСостояния;

    Если нужно передать двоичные данные, то нужен метод запроса УстановитьТелоИзДвоичныхДанных. Если серверу нужно передать тип содержимого, то установим заголовок с помощью свойства запроса Заголовки:
    ЗапросСервера.Заголовки.Вставить("Content-type", "application/json");


    А вот для x-www-form-urlencoded (особенно с отправкой нескольких файлов) нужно будет дополнительно вручную отформатировать тело запроса.
    Ответ написан
    3 комментария
  • Как передать имя документа через параметр в 1С?

    @Dementor
    программист, архитектор, аналитик
    Посмотрел ваш обмен комментариями с Константином. У вас нет понимания, как работают запросы. Попробую в двух словах.

    Текст запроса - это инструкция подсистеме управления базой данных по выбору и трансформации данных. Есть синтаксис языка запросов, согласно которому источник получения данных требуется описать в разделе ГДЕ следуя определенным правилам: если источник находится в данных системы, то он описывается как [КлассОбъекта].[ИмяОбъекта] (при этом как источник можно использовать только табличные данные, даже если они содержат всего одну строку - т.е. константы применять можно, а перечисления уже нельзя); если же источник данных находится в коде, откуда выполняется запрос, то пишут &НазваниеПеременной и источник данных передают в одноименную переменную.

    Итак, если на вход объекту Запрос или основанному на нем (это могут быть "построитель отчета" или "система компоновки") подать некоторый текст запроса, где в секции ГДЕ будет вместо Документ.Акт и Документ.Счет будет &ВидДокумента , то он отправится в переданную коллекцию параметров, поищет там параметр с именем "ВидДокумента", переместит его содержимое во временную таблицу и выполнит запрос к этой временной таблице, а не к реальным таблицам тех же документов. Таким образом, если вы в параметр ВидДокумента установите какую-то таблицу значений (или табличную часть, или результат из другого запроса), то у вас все получится. Но при передаче строки, как в вашем случае, получится ошибка, так как строку невозможно неявно преобразовать в таблицу.

    Если у вас в какой-то переменной есть имя таблицы, то вам нужно следует передать значение этой переменной в текст запроса так как посоветовал Константин, или с помощью текстовой замены:
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ВидДокумента", ВидДокумента);
    Ответ написан
    Комментировать
  • Как вручную указать, что первый обмен с сайтом типа "только изменения" был успешно завершен?

    @Dementor
    программист, архитектор, аналитик
    В типовых конфигурациях (особенно тех, которые обмениваются с Битрикс-подобными сайтами) есть стандартная обработка "Регистрация изменений для обмена". Запустите ее. Сверху нужно будет выбрать план обмена "Обмен с сайтом" и указать узел с вашими настройками. Вам будет показан весь перечень объектов, которые зарегистрированы для будущего обмена. "Регистрация для отправки" автоматически пропадает после успешного обмена. Но в данной обработке ее можно и вручную удалить. А так же можно вручную зарегистрировать на отправку нужные вам небольшие пачки данных (выбирая их списком или отобрав с помощью языка запросов).
    Ответ написан
  • Некорректная печать штрих-кода в ценнике?

    @Dementor
    программист, архитектор, аналитик
    Посмотрите свойства вашего объекта для печати штрихкода. Какой тип кода там установлен? Может там вовсе не EAN13 и потому печатается, какая-то фигня.

    Потом, посмотрите формирование печатной формы. Там будет, что-то типа: ОбластьМакета.Рисунки.D1.Объект.Сообщение = Штрихкод. Проверьте отладчиком, что тут происходит. Возможно этот кусок кода не выполняется и потому на печать идет 1234567890128, который явно прописан в свойстве "Сообщение" объекта печати штрихкода для предпросмотра в макете.
    Ответ написан
    Комментировать
  • Как передать выгрузку 1С в сформированную таблицу через обмен данными с WEB сайтом?

    @Dementor
    программист, архитектор, аналитик
    Судя по тегу, у вас Битрикс. Следовательно идите в битриксовскую документацию. У них есть и общая теория по обмену с 1С и детальный учебный курс на эту тему.
    Начинайте с этой ссылки: https://1c.bitrix.ua/ecommerce/
    Ответ написан
    Комментировать
  • Как зделать синхронизацию сайта с 1с, используя codeigniter или чистый PHP?

    @Dementor
    программист, архитектор, аналитик
    Если не хотите отступать и решились выполнить эту задачу, то у вас есть два варианта:

    1) Воспользоваться наработками компании Битрикс (ныне выкуплена компанией 1С). Если на втором конце одна из типовых конфигураций, то вам достаточно скачать и установить подходящий модуль с этой странички. Далее вам нужно изучить стандарт CommerceML, который разработала компания 1С совместно с Microsoft. И финальным аккордом берите свой "чистый PHP" и пишите серверную часть механизма обмена, которая будет получать справочные данные из 1С и возвращать назад заказы (и все остальное, что реализуете).

    2) Или будьте настоящим самураем. Разработайте собственный протокол обмена бизнес-данными, а потом в 1С и на своем сайте создайте все необходимые интеграционные механизмы. Это проще, так как никто вашу фантазию не ограничивает :)
    Ответ написан
    Комментировать
  • Нашу базу 1с зашифровали хакеры, есть ли шанс разблокировать?

    @Dementor
    программист, архитектор, аналитик
    Подобные темы периодически возникают на форумах пользователей Касперского, Др.Веба и Нода32 - сотрудники соответствующих антивирусов пытаются помочь решить такую проблему; на форумах уже лежат десятки средств, которые могут помочь в попытке дешифровки.

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

    P.S. Добро пожаловать в сообщество людей, которые "УЖЕ делают бэкапы".
    Ответ написан
    Комментировать
  • Как избавиться от found orphan temp table в postgresql?

    @Dementor
    программист, архитектор, аналитик
    При случае киньте линк на нормальную книгу по ПГ

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

    По поводу вашей проблемы. Решать "что делать" должен человек с полномочиями и админским доступом - т.е. вы, а не какой-то анонимный советчик. В интернете на эту тему множество топиков (один из них) и ваша задача перебором добиться восстановления работы (кстати, многие пишут про вакуум для удаления таблиц-сироток - с него можете и начать). Меня в вашей истории больше смущает фраза "Сервак под win 2003 крешнулся". Пока вы не восстановите работоспособность файловой подсистемы, ничего хорошего вас не ждет.
    Ответ написан
    Комментировать
  • Как реализовать контроль остатков в 1С?

    @Dementor
    программист, архитектор, аналитик
    Что значит "результаты чтетны"?

    Из того что я вижу (как я понимаю это модуль объекта документа РеализацияУчебников, а что творится в модуле объекта документа ПолучениеУчебников и модуля набора записей регистра ОстаткиУчебников остается неизвестным) хочу отметить несколько моментов:

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

    2) Если у вашего документа запрещено оперативное проведение, то блок в условии "Режим = РежимПроведенияДокумента.Оперативный" не будет выполнен.

    3) В вашей логике пропущена запись набора движения до выполнения запроса. Команда "Движения.ОстатокУчебников.Записывать = Истина;" говорит лишь о том, что при завершении процедуры проведения записи из свойства Движения.ОстатокУчебников необходимо записать в базу данных. Но, если вы в рамках проведения хотите запросом проверять измененное состояние в базе, то проводки перед этим стоит записать явно методом Записать().
    Ответ написан
    4 комментария
  • Как реализовать удаленный доступ к 1с?

    @Dementor
    программист, архитектор, аналитик
    Вам нужно знать, что базы 1С бывают двух видов - файловые и серверные. В первом случае пишите скрипт который с помощью системной утилиты будет анализировать обращения к файлу базы (как вариант запускать процесс подключения с читыванием таблицы активных подключений). Во втором случае используйте утилиты RAS/RAC для доступа к информации через кластер. Полученные скрипты добавляйте в ваш систему наблюдения (zabbix, munin или что там у вас стоит) и наслаждайтесь контролем :)
    Ответ написан
    Комментировать
  • Перегружен RAID массив при работе с бд?

    @Dementor
    программист, архитектор, аналитик
    То, что я вижу в вопросе.
    В наличии имеются: 1) "рабочий компьютер с неизвестным линуксом, рейдом, стандартной утилитой диагностики рейда и СУБД для 1С", 2) сервер, который соединен с рабочим компьютером; 3) три терминала с установленной программой 1С:Повар и биометрическим сканером.
    Проблема: рейд перегружен и база 1С не может достучаться к СУБД.
    Вариант поиска проблемы: перегружать сервер и терминалы.

    Вы хоть понимаете, что можете перегружать сервер до бесконечности, но на вашем компьютере с СУБД это абсолютно никак не отразится? Далее очень дико слышать, что вы можете запускать какие-то стандартные программы, но не можете определить версию дистрибутива.

    Мой совет - перестаньте шаманить и позовите сисадмина.
    Ответ написан
    Комментировать
  • Как связать 1с с апи бота?

    @Dementor
    программист, архитектор, аналитик
    Но как нам это все связать? Есть ли какое то апи у 1с? Есть ли какие то готовые решения?

    В 1С можно создать API любой сложности на базе HTTP-сервисов или SOAP (есть и другие способы, но с серверов Телеграмма/Вайбера они вам будут недоступны). Вот вам пример получения данных из базы 1С, который вы можете использовать в своем проекте (запрос боту "верни текущий статус моего заказа") - https://infostart.ru/public/302876/
    Ответ написан
    3 комментария
  • В 1С некорректно выгружает в excel?

    @Dementor
    программист, архитектор, аналитик
    0) Что такое "1С документооборот 7 версии"? Видимо это или ваше ноу-хау или не сертифицированное у вендора решение. Типовое же решение под названием "1С:Документооборот" впервые появилось на версии платформы 8.2 и несет в названии цифру 8. Его предшественник назывался "1С:Архив" и был отдельной программой написанной на Visual C++.

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