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

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

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

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

    @Dementor
    программист, архитектор, аналитик
    То что вы описали и есть стандартное решение.

    Мы в часть справочников добавили реквизит "Не используется", а в формах списка/выбора при открытии накладываем отбор, что бы такие элементы не показывать пользователю. Тут же на формах прячем кнопку "Показать скрытые", которая снимает этот отбор для случая работы с архивными данными (к примеру, выбрать в отчет по старому периоду). Но это была УТ10. Возможно, что подобный функционал уже внесли в состав БСП - не рыл в данном направлении, не знаю...
    Ответ написан
  • Как после сохранение данных создавал xml файл?

    @Dementor
    программист, архитектор, аналитик
    Судя по набору слов, которые вы применили, у вас очень мало опыта в создании решений на PHP и вовсе нет понимания в работе с 1С. Поясню:

    1) Вы ссылаете на статью, где есть пример создания XML-файла с помощью инструментов работы с DOM. Можно и так. А можно сделать XSLT-трансформацию вашего представления заказа в тот вид, который вам дали для интеграции с 1С. А можно и вовсе не заморачиваться и писать просто текстовый файл. Все зависит от вашего мастерства в PHP-программировании и контекста выполнения скрипта.
    1.1) Насколько я понял Yii2 - это фреймворк для создания интерфейсов, а не набор базовых библиотек. Поэтому искать в нем средства выгрузки заказа в файл бесполезно - он не знает что такое "заказ". Он знает только, что такое грид, который подгружает данные с вашей базы заказов.

    2) Дропбокс не имеет никакого отношения к 1С (и никогда не имел). Решения на платформе "1С Предприятие 8" (и некоторые 7.7) умеют получать данные из файлов, из внешних СУБД, запрашивать их по HTTPS или с FTP, сами выставлять к себе доступ и получать данные по REST-сервисам, SOAP или даже по COM-соединению (а если подключать библиотеки, то каналы связи ограничены только фантазией разработчика). В вашем случае вам дали четкое ТЗ на разработку, где есть описанный XML-формат заказа и место, куда файл нужно выгружать (на дропбокс, но точно так же могли потребовать на Яндекс-диск) - к 1С эти данные не имеют прямого отношения, просто так захотели разработчики, с которыми вы контактируете.

    Буду благодарен, у кого был опыт и примерный алгоритм скажет как действовать, чтобы не набивать лишний раз шышки, так как не было опыта по интеграции

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

    @Dementor
    программист, архитектор, аналитик
    Если бездумно заменить одну таблицу на другую, то это вам не поможет. А индексы можно и в табличных частях справочника добавлять.

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

    P.S. Кстати, одна из причин использования непериодических регистров сведения, которые подчинены справочникам (в виде указания ведущим измерением), вместо обычных табличных частей - как раз борьба с блокировками, которые возникают при обычной работе пользователей в базе с формами этих справочников. Их продвигали в эпоху конфигураций 8.0-8.2, но в новых типовых конфигурациях вернулись назад к использованию табличных частей. Пример - контактная информация.
    Ответ написан
    Комментировать
  • Можно ли объединить два и более хранилищ систем 1с с разными конфигураторами?

    @Dementor
    программист, архитектор, аналитик
    Технически реализовать не сложно. Пишите скрипт по 1) выгрузке файлов из "доработанной базы" и "связанных баз", 2) далее замене файлов общих для всех баз объектов в каталогах выгрузки из "связанных баз", 3) загружайте файлы назад в связанные базы.

    Единственное, что вам нужно взять во внимание (кроме отслеживания логической целостности конфигурации) в этой схеме - нельзя делать загрузку файлов в базу, которая подключена к хранилищу. Если вам так сильно нужно вносить изменения именно в хранилище (внешние системы контроля версия типа GIT по какой-то причине не подходят), то вам нужно использовать промежуточные базы и цепочка в скрипте увеличивается: 0) обновиться с хранилища, 1) тот же, 2) тот же, 3) тот же но в промежуточную базу, 4) выгрузка из промежуточной базы единого файла конфигурации CF, 5) захват конфигурации в хранилище, 6) сравнение/объединение базы подключенной к хранилищу с полученным на предыдущем шаге файлом (не уверен, что это можно сделать скриптом - возможно нужно будет явно пощелкать мышкой).
    Ответ написан
  • Как снизить количество ошибок после очередной доработки системы?

    @Dementor
    программист, архитектор, аналитик
    Наличие ошибок - это отсутствие или неполноценное тестирование.

    Вызывает вопросы ваша тестовая база - зачем она вам, если она не защищает от ошибок? Кто обнаруживает ошибки в рабочей базе и почему вы не даете этим людям возможность увидеть эти ошибки еще во время обновления тестовой базы?

    В зависимости от бюджетов и компетенций можете внедрить какие-то из технологий сценарных тестирований, что бы автоматически выявлять привнесенные ошибки:
    1c.ru/news/info.jsp?id=17985
    https://habrahabr.ru/post/307808/
    https://infostart.ru/public/262904/
    https://github.com/silverbulleters/vanessa-behavior
    Ответ написан
    8 комментариев
  • Что за РучнаяНастройка_УСН?

    @Dementor
    программист, архитектор, аналитик
    1) Синтаксис помощник предназначен для получения справки по свойствам используемой версии платформы "1С:Предприятие". Так было со времен 7.7 (а может и раньше). Это не китайская "Книга перемен", что бы отвечать на произвольные вопросы.

    2) Очевидно, что РучнаяНастройка_УСН - это какая-то фишка по работе с налоговым учетом, которая была в вашей версии Бухгалтерии 2, но которой больше нет в Бухгалтерии 3. Что бы понять что это за реквизит и для чего он нужен, нужно провести "археологические раскопки". Для этого откройте старую бухгалтерскую конфигурацию и выполните глобальный поиск по данной строке (в свойствах поиска ставьте все галочки).
    Ответ написан
    Комментировать
  • В 1С 8.3 - где находится настройка обмена данными с web-сайтом?

    @Dementor
    программист, архитектор, аналитик
    8.2 и 8.3 - это номера платформы выполнения кода. Обновление 8.2 -> 8.3 это как на винду с первым сервис-паком накатить второй сервис-пак: программы не пропадаю, настройки не слетают, все документы на своем месте; просто закрываются неизвестные для обычного пользователя ошибки и система в целом просто более стабильно работает. Новые версии платформы могут выполнять старые программы, которые изначально писались под 8.0/8.1/8.2 (точно так же как в Windows есть режимы совместимости для старых программ с Win98/NT/2000/XP)

    Если у вас перестал работать обмен с сайтом, то вам обновили саму программу "Управление торговлей" (УТ). Подозреваю, что с версии УТ10 на УТ11 - их архитектура действительно настолько сильно различна, что старые обработки перестают работать (это как сменить просмотрщик с Adobe Reader на какой-нибудь DJVU Reader - обе программы хороши, но вторая не читает файлы от первой программы). В программах линейки "Управление торговлей" изначально заложен обмен с сайтом Битрикс. Вам нужно найти программиста, который знает новую торговую конфигурацию, что бы он подправил обработку обмена аналогично как вам ее исправляли для старой версии.
    Ответ написан
    2 комментария