Ответы пользователя по тегу 1С-Предприятие
  • Почему не выгружается из 1С в файл XML?

    @Dementor
    программист, архитектор, аналитик
    Вам же черным по белому написали, что в 65 строке вашей обработки ошибка.
    Исправьте и все заработает :)

    Мысли вслух: поскольку ошибка выскакивает при установке нового атрибута xml-тегу, то или имя атрибута не удовлетворяет правилам образования имен, или значение не поддерживаемого типа. Нужно отлаживать код, что бы понять...
    Ответ написан
    Комментировать
  • Как вклинить в список выбора свой флажок (1С)?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @Dementor
    программист, архитектор, аналитик
    Список транспорт с помощью реквизита справочника сделать нельзя. В реквизите может быть одно значение (вариант с хранилищем значений не рассматриваем, как не рекомендуемый методологами из 1С).

    Вам нужно для вашего справочника сделать табличную часть "Базовые машины" с реквизитом "Машина" типа СправочникСсылка.МаркиМашин. Далее если вы хотите на форме видеть данные полем ввода, а не табличкой, то вам (как уже подсказывает Константин Нагибович ) нужно на форму элемента справочника добавить реквизит с типом СписокЗначений и значениями типа СправочникСсылка.МаркиМашин. Далее при создании/открытии формы с табличной части переносите в этот элемент. На сам элемент навешиваете обработчик ПриИзменении(), в котором устанавливаете флаг Модифицированность. А в обработчике формы ПередЗаписью() копируете содержимое из вашего списка в табличную часть.

    P.S. Сделать это можно быстрее чем я тут печатал :)
    Ответ написан
    1 комментарий
  • Как правильно организовать бекап БД 1С с кешем?

    @Dementor
    программист, архитектор, аналитик
    Если 1С версии 8, то в файловом режиме нет никакого кеша данных. Есть единый файл 1Cv8.1CD в котором хранится вся информация кроме Журнала Регистрации и индекса полнотекстового поиска.

    Никакую работу и тем более за 4 часа потерять невозможно. У вас или вся база навернется с потерей всех данных, или только незакрытые транзакции последних секунд работы.
    Ответ написан
    4 комментария
  • Обновление цен по прайсам?

    @Dementor
    программист, архитектор, аналитик
    1) Не нужно трогать старые установки цен - они нужны для истории. Вам нужно создать новый документ установки цены от 01.09.2017
    2) Поищите какую-нибудь загрузку. Возможно она у вас в пункте меню "Заполнить". Если ничего найти не можете, а бывший сотрудник на связь не выходит, то создайте новый документ копированием старого и перебейте изменившиеся цены.
    Ответ написан
    Комментировать
  • Задержка в 1с 7.7 торговля и склад, через локальную сеть между двумя пк, в чём проблема?

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

    Пока будете искать решение, можете попробовать на основном компьютере подключить зашаренную папку как сетевой диск и обращаться к базе по сети. По идее, тогда обе базы будут тормозить одинаково. Сомневаюсь что выйдет, но все же попробуйте ради эксперимента.
    Ответ написан
    Комментировать
  • Как в 1С найти пользователя (компьютер) зашедшего в конфигуратор?

    @Dementor
    программист, архитектор, аналитик
    В технологии 7.7 средствами платформы понять кто подключился еще было нельзя.

    Посоветую вам удалить пользователя Администратор, а вместо него завести Иванов/Петров/Сидоров для каждого из ваших разработчиков. Лицензирование все равно происходит количества работающих пользователей, а не количества зарегистрированных - хотя тысячами их добавляйте, но ни копейки доплаты с вас не потребуют. Да и вам так проще - человек уволился, так сразу убирайте ему доступ, а не переживайте о том, кто из обиженных в очередной раз захочет скопировать базу или заняться вандализмом.
    Ответ написан
    2 комментария
  • В каких случаях нужно использовать объединение/соединение?

    @Dementor
    программист, архитектор, аналитик
    Если говорить грубо, то:
    Объединение - дописывает к таблице результата новые строки
    Соединение - дописывает к таблице результата новые колонки
    Вложенный запрос - позволяет в единой точке для соединения, объединения, условия или иных операций получить дополнительную таблицу (которую формирует запрос).
    Пакетный запрос - позволяет ранее сформировать временную таблицу, которую далее в тексте запроса можно использовать несколько раз.

    Как учебный пример для вышесказанного:
    1) в пакете сначала делаем запрос для фильтра по товарам на справочник Номенклатуры, где в секции ГДЕ будет условие на вхождение ссылки в результаты вложенного запроса по продажам в указанный пользователем период, а результат помещаем во временную таблицу.
    2) во втором запросе пакета делаем объединение выборок по товарному составу документов заказ товаров и реализация товаров, каждый из которых будет соединен внутренним соединением с ранее сформированной временной таблице для отсечения неинтересной информации и добавления недостающей колонки с артикулом номенклатуры в результат.
    Ответ написан
    Комментировать
  • Как решить в 1с ошибку в модуле "РаботаВБезопасномРежимеСлужебный"?

    @Dementor
    программист, архитектор, аналитик
    Судя по скриншоту у вас конфигурация снята с поддержки и доработана. Все вопросы к тому, кто это делал.

    Если концов не найти и вам нужно это как-то расхлебывать, то запускайте Меню Конфигурация > Поддержка > Настройка поддержки > Сравнить объединить. Если в конфигурации поставщика есть пакет XDTO про который ругается код в модуле, то поставьте напротив него галочку и пусть он подтянется в вашу конфигурацию. Если нет, вероятно было частичное обновление и у вас два варианта - или откатится на версию общего модуля РаботаВБезопасномРежимеСлужебный из конфигурации поставщика (но тогда возможны другие ошибки - ведь не от балды кто-то обновлением занимался), или найти более свежую версию вашей конфигурации и с помощью сравнения/объединения добавить недостающий пакет XDTO.
    Ответ написан
  • Как выгрузить товары из 1с v8.3 в excel с картинками?

    @Dementor
    программист, архитектор, аналитик
    Быстрее всего получить список товаров с общими реквизитами можно так:
    1) Заходишь в список товаров
    2) Правой клавишей мышки по списку и в контекстном меню "Вывести список"
    3) Меню "Файл" > "Сохранить как" и выбрать формат Excel.
    Но это без картинок.

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

    Далее соединить в Excel первую таблицу со всей доп информацией и таблицу с картинками - это плевое дело для любого, кто пишет в своем резюме "опытный пользователь Ms Office" :)
    Ответ написан
    Комментировать
  • Как сменить время в реализации товаров и услуг?

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

    Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
       // какой-то текст, который был ранее...
       Дата = КонецДня(Дата); // или НачалоДня(Дата)
    КонецПроцедуры // ПередЗаписью


    Как вариант, можно не трогать документ, а создать подписку на событие ПередЗаписью для вашей реализации и закинуть в нее смену даты.
    Ответ написан
  • Как выгрузить базу из 1с в правильной кодировке?

    @Dementor
    программист, архитектор, аналитик
    Какой-то бред написан...

    В системе 1С-Предприятие все данные внутри базы (конфигурация и ее версия тут не важны) хранятся в Юникоде (кроме варианта 7.7 - там действительно было в виндузовской кодировке). Сохранение любой информации по-умолчанию происходит в кодировке UTF-8, если явно не указать какую-то другую.

    Если нельзя - будут ли проблемы с работой сайта, если оставить таблице cp1251?

    Вы написали какой-то сайт на PHP и MySQL (судя по тегам), а теперь хотите от абсолютно незнакомых людей угадать: будут ли у вас проблемы??? Вас самого ничего не смущает в вашем вопросе? :)
    Ответ написан
    2 комментария
  • Как получить запросом данные из регистра накопления об остатке и откуда прибыла номенклатура?

    @Dementor
    программист, архитектор, аналитик
    Если в таблице ТоварыНаСкладах такого поля нет, то значит нужно делать ЛЕВОЕ СОЕДИНЕНИЕ с таблицей, где эти поля есть. Или не делать... В текущей постановке у такого вопроса не может быть ответа (разве что от экстрасенсов).

    Но давайте попробуем зайти с конца. Если вы анализируете остатки тракторов на складе, то значит вам все равно кто их продал. Точнее поставщик = завод производитель, т.е. для каждого трактора он предопределен (а если их несколько, то у вас просто нет шансов смотря на циферку остатка понимать от кого они пришли). Скорее всего (если у вас что-то типа УТ или УПП) у номенклатуры есть реквизит "ОсновнойПоставщик". В таком случае решение простое:

    ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Организация,
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.Номенклатура.ОсновнойПоставщик,
    ТоварыНаСкладахОстатки.ВНаличииОстаток

    ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Организация = &Организация) КАК ТоварыНаСкладахОстатки
    Ответ написан
    Комментировать