Ответы пользователя по тегу 1С-Предприятие
  • Как запустить HTML страницу с JS и HTML5 в 1C?

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


    Теперь к вашей библиотеке. У вас точно такие же два выхода:
    1. Скопировать весь код из файл JS и вставить его в ваш текст HTML-файла в теге SCRIPT
    2. Вставить в код страницы URL скрипта, который доступен пользователям (как вариант, снова опубликовать на веб-сервере, который обслуживает 1С)
    Ответ написан
    2 комментария
  • Выгрузить данные по 1 организации из базы данных а 1С?

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

    @Dementor
    программист, архитектор, аналитик
    Твои показатели прямо сейчас уже выше чем у большинства соискателей роботы во франчах. Если франч не топовый (а-ля Рарус), то тебе там будут рады и за полгодика получишь крепкую базу с практикой.
    Ответ написан
    2 комментария
  • Как заставить 1с сохранять с нужными правами?

    @Dementor
    программист, архитектор, аналитик
    А права пользователя под которым запущен сервер 1С:Предприятия проверили? Или у вас файловая база?
    Ответ написан
  • Выбор конфигурации ПК для однопользовательской 1С: КА?

    @Dementor
    программист, архитектор, аналитик
    Системная память 5120 МБ

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

    @Dementor
    программист, архитектор, аналитик
    Простите за резкость, но это не вопрос, а несвязная мешанина горячечного бреда!

    Есть документ "Календарь". К нему добавляем дополнительное свойство типа строка.

    Добавлен реквизит? Добавлено значение в регистр сведений в разрезе характеристики?

    У дополнительного свойства имени 2: 1. Наименование "Событие", 2. Имя "СведСобытия".

    Наименование - предопределенный реквизит справочников, счетов, расчетов, обменов, характеристик и задач. Имя - это предопределенное свойство множества элементов метаданных и некоторых объектов встроенного языка. Какое все это имеет отношение к вашему документу "Календарь" не понятно!

    Ссылку по наименованию получаю через поиск. А как обратиться к сведению по имени "СведСобытия"?

    В документах поиск по Наименованию не предусмотрен - только по номеру и по реквизиту. Если вы своему документу дали реквизит "Имя", то так и ищите - Документы.Календарь.НайтиПоРеквизиту("Имя", "СведСобытия"). Если у вас несколько документов с таким реквизитом, то получите только первый случайно попавшийся из них.

    НайтиПоНаименованию при параметры точного поиска истина, поиск пытается запросить "Событие (Календарь)"?

    "Событие (Календарь)" - это новый документ связанный с Календарем? К чему это все? Если ищете в списке документов "Календарь", то найдете документы только этого вида; если ищете среди Событий, то и получите событие. При чем тут точность? Точность просто сигнализирует, что нам не интересна часть наименования за первой половиной, которая совпала с поисковой строкой.

    Можно ли в отборе сразу указать к какому документу относится данное поле?

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

    По полученному сведению пытаюсь получить родителя и владельца - возвращает пустые значения.

    Что за сведения? Какой-то реквизит вашего документа? Вы пока говорили, что у вас реквизиты строкового типа - у вас свойства родителя и владельца просто не существуют и при попытке к ним обратится должна генерироваться ошибка. Если вы взяли какой-то ссылочный реквизит, то эти свойства пустые у пустых ссылок. Еще вариант, что у ваших объектов просто нет владельца и группы.
    Ответ написан
  • Как в 1С автоматически вставлялись прежняя дата и изменённая дата?

    @Dementor
    программист, архитектор, аналитик
    Подскажи,пожалуйста,где ошибка

    Ошибок нет.

    Запись.ПолучитьФорму("ФормаСписка").Открыть();

    Суть вопроса - нужно,чтобы при открытии формы автоматом вставлялись значения изменённая дата и прежняя дата. Только открывается форма без значений

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

    Вам нужно сперва получить форму, далее заполнить ее данными и лишь затем открывать. Код ниже просто как ориентир. Предположим что на вашей форме основной реквизит назван НаборПроблем:

    ФормаПроблем = РегистрСведений.Проблемы.ПолучитьФорму("ФормаСписка");
    
    НаборЗаписей = ФормаПроблем.НаборПроблем;
    НаборЗаписей.Отбор.ЗП.Установить(ЭлементыФормы.ЗаказыПО.ТекущиеДанные.ЗП.Ссылка);
    НаборЗаписей.Отбор.Период.Установить(ПрежняяДО);
    
    НоваяЗапись = НаборЗаписей.Добавить();
    НоваяЗапись.ПрежняяДО = ПрежняяДО;
    НоваяЗапись.ИзмДатаОтгрузки = ИзмДатаОтгрузки;
    НоваяЗапись.Период = ПрежняяДО;
    НоваяЗапись.ЗП = ЭлементыФормы.ЗаказыПО.ТекущиеДанные.ЗП.Ссылка;
    
    ФормаПроблем.Открыть();


    Плюс замечание по коду.
    1) ЭлементыФормы.ЗаказыПО.ТекущиеДанные.ЗП.Ссылка - это эквивалент более короткой записи ЭлементыФормы.ЗаказыПО.ТекущиеДанные.ЗП, но только для получения Ссылки из ЗП (типа Ссылка) вы подгружаете в память из базы данных полностью весь документ заказа (лишний запрос к БД, потеря времени и оперативки).
    2) Если ЗаказыПО - это не ТЧ или ТЗ, а динамический список на базе документа ЗаказыПО, или элемент типа ДокументСписок.ЗаказыПО, то можно написать еще проще: ЭлементыФормы.ЗаказыПО.ТекущаяСтрока.
    Ответ написан
  • Как в 1С прибавить одну минут ко всем документам отбора?

    @Dementor
    программист, архитектор, аналитик
    Почему такое могло произойти?

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

    Как можно применить к ним всем разом изменение даты по формуле: дата текущего документа + 1 минуту и провести?

    Выше Константин правильно написал. Нет никакого массового Replace/Update - нужно каждый документ явно получить и исправить. Далее копия моего комментария:
    -----------
    Код можно немного модифицировать и выполнить в разделе произвольного алгоритма в стандартной обработке с ИТС - "Универсальный подбор и обработка объектов":
    Объект.Дата = Объект.Дата + 60; 
    Объект.Записать();
    Ответ написан
    Комментировать
  • Как отключить режим совместимости 1с ут 11.1?

    @Dementor
    программист, архитектор, аналитик
    В настройках поддержки нужно включить возможность внесения изменений.
    Ответ написан
    6 комментариев
  • Почему 1С генерит одинаковые пароли?

    @Dementor
    программист, архитектор, аналитик
    На платформе "1С Предприятие" нет штатной функции генерации паролей. Создатели "учета в ЖКХ" написали свой "велосипед" и лажанулись. Судя по описанию используется генератор случайных чисел на базе текущей отметки времени с точностью до секунды. Как раз секунды достаточно, что бы создать 5 пользователей. Нужно найти в коде генерацию пинов и передавать в генератор текущее время с точностью до милисекунды.
    Ответ написан
    Комментировать
  • Можно ли получить доступ к реквизиту?

    @Dementor
    программист, архитектор, аналитик
    На форму документа добавил таблицу значений.

    Зачем? Она же существует только в оперативке и кроме контекста модуля формы больше нигде не доступна!

    Давайте сразу определим цель вашей доработки: вы дали пользователю настройку печати, которую ему нужно КАЖДЫЙ раз заполнять перед печатью или есть важная информация по документу, которую нужно записать?
    В первом случае пишите процедуру печати тоже на форме. Во втором случае создайте документу табличную часть (если не ошибаюсь, то теперь в расширениях можно добавлять свои элементы метаданных).
    Ответ написан
  • Почему не выгружается из 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 комментарий