• Как получить строку ТЧ по номеру строки для заполнения?

    @Dementor
    программист, архитектор, аналитик
    Как-то так:

    ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
    ДокументОбъект.ТабличнаяЧасть[НомерСтроки-1].ИмяРеквизита = ЗначениеРеквизита;
    ДокументОбъект.Записать();
    Ответ написан
    Комментировать
  • Как сравнить табличные части документов?

    @Dementor
    программист, архитектор, аналитик
    Самое быстрое и простое:

    1) Выгрузить табличные части в таблицы значений и свернуть по номенклатура с итогами по количеству (но случай, если в отличии от СФ в РТиУ дробили данные по аналитике затрат)

    2) Делать обход циклом строк по одной таблице и делать поиск соответствующей строки во второй:
    2.1) Если строки нет, то выводить сообщение, что такой-то номенклатуры в РТиУ нет
    2.2) Если строка есть, но количество не то, то выводить сообщение про наличие дельты.

    3) Найденную строку второй таблицы после сравнения количества удалять из второй таблицы.

    4) После окончания цикла по первой таблице, сделать цикл по второй таблице и сообщить, что в отличии от СФ в РТиУ появились новые позиции с таким-то количеством.
    Ответ написан
    Комментировать
  • Как скопировать значение одного реквизита справочника в другой?

    @Dementor
    программист, архитектор, аналитик
    Можно написать свою обработку, в которой будет типа такого:

    ВыборкаНоменклатуры = Справочники.Номенклатура.Выбрать();
    Пока ВыборкаНоменклатуры.Следующий() Цикл
    	Если не ВыборкаНоменклатуры.ЭтоГруппа и ОбъектНоменклатура.НазваниеТовара <> ОбъектНоменклатура.Наименование Тогда
    		ОбъектНоменклатура = ВыборкаНоменклатуры.ПолучитьОбъект();
    		ОбъектНоменклатура.НазваниеТовара = ОбъектНоменклатура.Наименование;
    		ОбъектНоменклатура.Записать();
    	КонецЕсли; 
    КонецЦикла;


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

    Объект.НазваниеТовара= Объект.Наименование;
    Ответ написан
    Комментировать
  • Как исправить Ошибка СУБД в 1С?

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

    @Dementor
    программист, архитектор, аналитик
    Очевидно, что не отрабатывает "Справочники.ВидыНоменклатуры.Наименование("Телефон")".

    И такое написание кода плохой стиль. И не только по причине возможности смены наименования пользователями. Почему именно для телефонов не нужно указывать комиссию? Нет ли более точного признака (ставка, код классификатора и пр.)? Точно только одна группа будет скрываться всю жизнь компании и новых групп никогда не будет?

    Лучше ввести признак "Без комиссии" и по этому признаку из номенклатуры, или из ее вида, или из их группировок уже далее скрывать блоки. Если речь про управляемый интерфейс, то нужно рассмотреть использование управления видимостью по функциональным опциям.
    Ответ написан
  • Ошибка во внешнем отчёте?

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

    Если ситуация продолжает воспроизводится:
    1) Проверить права пользователей и наличие в них РЛС
    2) Написать обработку, которая делает выборки информации с помощью объекта Запрос.

    Если с правами все прозрачно, а в Запросе нет дублей, то значит проблемы во внешнем отчете. Возможно какие-то глюки схемы компоновки или пользовательских настроек, которые пропадут если все переделать с нуля.
    Ответ написан
    Комментировать
  • Можно ли в 1С УПП 8 строить дашборды и визуализации?

    @Dementor
    программист, архитектор, аналитик
    Если стоит вопрос о покупке УПП для просмотра дашбордов, то эта система снята с продаж и считается устаревшей. Рассматривайте УНФ и ЕРП, где есть виджеты рабочего стола и монитор целевых показателей.

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

    @Dementor
    программист, архитектор, аналитик
    А почему просто не посмотреть содержимое своего пакета?
    Наверняка там mode равно не "import", а что-то в духе "full_import" или "reload".
    Ответ написан
  • Как выгрузить отчет по рекламным кампаниям из Яндекс.Директа по API и положить в учетную систему?

    @Dementor
    программист, архитектор, аналитик
    В документации нашел, как сформировать отчет, но, как я понял, он приходит в теле ответа. Если что, я ПМ, а не разраб, поэтому не совсем понимаю, то ли это, что мне нужно. Если нет - то вопрос в следующем...

    Да, это оно. А потом достаете отчет из тела ответа и записываете в БД.
    Ответ написан
    Комментировать
  • Как в 1C обрабатывать данные на стороне сервера?

    @Dementor
    программист, архитектор, аналитик
    Это ничего не делает, не обновляет поле формы и не внесет изменения в базе данных
    На самом деле обновляет, но от этого нет толку, так как данные из реквизита формы с именем "Объект" уже перенесены в реальный объект, который в процедуре ПередЗаписьюНаСервере() доступен под именем "ТекущийОбъект". После завершения транзакции записи происходит чтение из базы в реквизит на форме и все актуализируется (так как кроме серверных процедур формы объект перед записью может быть изменен в процедурах модуля своего объекта и в подписках на событие записи). Если нет 10 минут на чтение главы в учебнике по работе с объектами, то хотя бы прочитайте описание используемых процедур в Синтаксис-Помощнике (установите курсор на имя процедуры и нажмите Ctrl+F1).

    Меня волнует вопрос безопасности, обработка данных на стороне сервера безопаснее.
    Это лютый бред. Если у вас нет прав на доступ к данным, то вы их не получите ни на сервере, ни на клиенте. Если у вас есть админские права на SQL-сервер, то шифрование канала клиент-сервера и все ограничения по правам доступа - просто пшик.

    Опытный программист могут написать свою клиентскую приложению с целью взлома
    Максимум на что способен ваш хакер - это сделать инъекции кода в веб-клиент 1С, но для работы с сервером ему все равно нужно будет иметь логин/пароль и все что он сможет сделать с пропатченого клиента все равно будет ограничено на сервере настройками прав и профилей безопасности. А если у него есть нужные права, то и патчить ничего не нужно.

    Я хочу получить данные с клиента и обрабатывать его на стороне сервера.
    Все так и происходит. На клиенте делается работа с видимость/доступностью элементов формы и примитивные вычисления в духе "если покупаете 5 ручек по 100 рублей, то с вас 500 рублей".
    Ответ написан
    Комментировать
  • Как отловить ошибку Нарушение прав доступа?

    @Dementor
    программист, архитектор, аналитик
    Скрина недостаточно для диагностики. Тут или типовая конфигурация (тогда проблемы возможно с Договоров и Банковским счетом, к которым нет доступа по РЛС), или дописки и там может быть все что угодно.

    Чтобы однозначно разобраться, нужно запустить конфигуратор на отладку и подключится к серверной сессии пользователя. Поставить остановку на процедуру КонтрагентПриИзмененииНаСервере() и далее пошагово идти, пока не поймаете ошибку на обращение к каким-то данным.
    Ответ написан
    Комментировать
  • Как настроить расширенную адресацию в УХ 3.1?

    @Dementor
    программист, архитектор, аналитик
    Сразу скажу, что мы УХ не покупали и с этим механизмом я не сталкивался, но ряд проблем понятен по скриншоту!

    Судя по запросу в поле Аналитика1 находится Организация и для адресации в процессе Согласования вы даже делаете соединение с таблицей ответственных - оно Внутреннее, так что при отсутствии ответственных на выходе будет пустой массив. Нужно этот момент перепроверить! Заполненность Организации и Ответственного на указанной роли.

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

    Для точной диагностики рекомендую на конец процедуры вставить вывод с помощью Сообщить() или ЗаписьЖурналаРегистрации() по: 1) количеству элементов массива, 2) типу первого элемента, если такой есть; 3) значению первого элемента, если такой есть.
    Ответ написан
  • Возможно ли интегрировать 1С-Предприятие и PHP сайт используя DMService?

    @Dementor
    программист, архитектор, аналитик
    DMService - это SOAP-сервис для работы с системой Документооборота. Это лучше чем REST, так как тут вам доступно полное описание входящих/исходящих типов в XDTO-пакете.

    Программист 1С настроил DMService и дал мне ссылку на документацию. Он утверждает, что он сделал свою работу, а дальше дело за мной.
    Если у вас в статуте проекта ничего не было о предоставлении простого и понятного доступа, то вас кинули. DMService - это часть Библиотеки Интеграции Документооборота (БИД), которая поставляется исключительно как 1С-подсистема. Можно написать библиотеку на PHP, если вам в ближайшие месяцы нечем заняться, но это потребует глубокого погружения в понимание структуры хранения данных и в организацию процессов Документооборота (не каждый сертифицированный консультант в этом поможет).
    Ответ написан
    Комментировать
  • Как добавить новое поле в форму?

    @Dementor
    программист, архитектор, аналитик
    У вас не получится ничего сделать.

    Если создатели динамических списков хотят дать пользователям добавлять на форму списка колонки с произвольными реквизитами, то они добавляют скрытое поле "Ссылка". Если стать на это поле, то кнопочка "Добавить поля" становится активной и можно добавлять любые доступные в ссылке реквизиты. Аналогично с другими ссылочными типами - так можно выбрать поле "Физлицо" и добавить из него рядом колонку "ИНН".
    Ответ написан
  • Обработка банковской выписки для загрузки в 1С?

    @Dementor
    программист, архитектор, аналитик
    Существуют ли готовые решения для этих целей?

    Все зависит от конфигурации и банка. Мой бывший франч (Украина) для УПП и УТ10 бесплатно новым клиентам предлагал нашу обработку Клиент-Банк (стандартная от Абби платная и платить нужно за каждый добавляемый банк). И у нас такой функционал - замена значений выписки по условию - был предусмотрен, так как клиенты очень часто спрашивали.

    Примерная стоимость разработки ПО для решения такой задачи?

    Хотите оценить бюджет для фрилансера? Все зависит от постановки задачи. Если у вас есть список ключевых строк, который не будет меняться - заплатку можно сделать прямо в коде - два часа. Если хотите доработать интерфейс, чтобы самостоятельно настраивать подмены в полях по указанному условию, то в зависимости от требований к внешнему виду и сохранению для работы в фоне - от 5 до 16 часов.
    Ответ написан
    Комментировать
  • Как рассчитать среднюю себестоимость в обработке проведения 1С?

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

    Что значит подсказали? Это явное требование по вашей задаче во втором абзаце! Если вы не будете реализовывать списание по средней стоимости в момент списания, у вас просто не примут решение.

    но я все равно не соображаю как это реализовать синтаксически что откуда вытаскивать и куда засовывать

    Синтаксис - это правила форматирования кода, что бы компилятор не выдавал ошибки и делал именно то, что его просят. Вам нужно сообразить "логически"!

    Ответ в первом же абзаце задачи - от вас требуют зафиксировать приход конкретного товара в количественном и суммовом выражении. На момент проведения расхода по конкретному товару у вас должен быть остаток в количестве и себестоимости (стоимости закупки). Можете за одно сделать проверку, чтобы нельзя было продать больше товара чем есть в наличии. Итак вы получили что по конкретному товару у вас есть в наличии X количества и Y стоимости, тогда среднезвешенная цена будет равна Y/X. Полученную цену умножаете на списываемое количество и получаете требуемую к списанию себестоимость. Движения по приходу в регистр накопления с плюсом, движения по расходу с минусом. Отчет по движению делается элементарно - взять регистр остатков товара и буквально прокликать Далее-Далее. А для отчета по прибыли нужно добавить регистр прибыли, который будет заполняться при продаже, куда в разрезе товаров хранить три показателя, которые нужны для отчета (а когда будет регистр, то отчет тоже делается очень просто).
    Ответ написан
    Комментировать
  • 1С Документооборот - не выполняются регламентные задания, возникает ошибка, в чем может быть причина?

    @Dementor
    программист, архитектор, аналитик
    Да, я помню такой кусочек кода - в ДО очень любят перед манипуляциями делать проверку с помощью ЗаблокироватьДанныеДляРедактирования(). А еще я помню, что там куча фоновых висит, включая бесконечный пересчет прав. И еще пользователи могли работать с браузера или мобильного клиента и их сессия зависла... Короче нужно сервер рестартануть.

    Если есть такая возможность, то рекомендую хотя бы раз в неделю регламентно в выходной перегружать службу 1С.

    P.S. Или можете настроить расширенное логирование технологического журнала и при следующей ошибке на блокировке отследить по истории кто там его ранее блокировал - человек или регламентное задание. Далее решение по обстоятельствам.

    UPD. Если вы подключены к системе взаимодействия, то можете сами снять блокировку без необходимости перегружать сервер. Из задачи, которую не можете выполнить заходите в предмет (как я понимаю, речь о внутреннем документе) и попытайтесь его отредактировать. Вам будет предложено снять блокировку. Подробнее тут:
    https://wonderland.v8.1c.ru/blog/vzaimodeystvie-pr...
    Ответ написан
  • Как в запросе в 1с сложить 3 столбца в 1?

    @Dementor
    программист, архитектор, аналитик
    Вадим Ягофаров, язык запросов 1С не поддерживает конкатенацию строк. Если вам нужна сортировка, то просто последовательно сортируйте по вашим троим колонкам. Саму конкатенацию сможете сделать уже при получении данных из запроса.

    Но если очень и очень нужно, то на ваш страх и риск:
    https://infostart.ru/public/200275/
    Ответ написан
    5 комментариев
  • Как отсортировать результат запроса по данному полю?

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

    Судя по тексту вашего запроса, у вас все данные хранятся в JSON формате. Следовательно запросом к данным 1С у вас ничего не получится. Нужна дополнительная алгоритмическая обработка данных.

    МассивJSON = Новый Массив();
    МассивJSON = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("JSON");

    Давайте смотреть сюда. Во первых, вы зря создаете в памяти объект типа Массив, так как следующей операцией вы создаете новый массив и помещаете ссылку на него в вашу переменную. Тем самым количество ссылок на первый массив обнуляется и он оставшееся время ожидает прихода сборщика мусора.

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