Ответы пользователя по тегу
  • Где взять эталон файла Orders.xml для выгрузки заказов?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Обмены в 1С работают следующим образом:
    1. В объектах типа "ПланОбмена" прописаны правила по которым выполняется чтение данных. Там прописано, откуда брать данные, и как их считывать.
    2. Как правило, в современных конфигурациях, все планы обмена настроены с использованием конфигурации "Конвертация данных".
    3. Ваша ошибка может быть связана, с любым нарушением условий прописанных в правилах обмена. Возможно в вашем файле нет документов нужного типа, а возможно в правилах установлено какое-то условие, фильтр, который не пропускает ваши данные. Чтобы разобраться с этим, нужно сохранить правила обмена в файл (обычно для этого есть соответствующая функция в интерфейсе), и загрузить их в конфигурацию "Конвертация данных".
    4. Сообщение "Не удалось прочитать данные, загруженные с сервера." может означать что угодно, в частности:
    - программа в файле не обнаружила нужных данных (см п.3)
    - файл с данными лежит там, куда у программы нет доступа
    - файл вообще лежит не там, откуда его пытается прочитать программа.
    Чтобы понять конкретную причину, опять же, нужно воспользоваться отладкой.
    Ответ написан
    Комментировать
  • Не понимаю, две директивы, называются по разному, но у них отличий что ли нет?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Ну как нет, без контекста же!
    В первом случае код может выполняться в контексте формы, а во втором нет.
    Ответ написан
    1 комментарий
  • Какие проблемы встречаются при использование PostgreSQL для 1c на Linux Mint?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Поскольку COM-технология, в принципе работает только под Windows, естественно, все решения с её использованием под Linux работать не будут. К сожалению таких решений довольно много.
    Подробнее написано например тут
    Что касается PostgreSQL, то в ИТС описаны некоторые недостатки работы с ним, причем это недостатки не самого PostgreSQL, а алгоритмов взаимодействия с ним 1С, т.е. в будущих релизах это может быть исправлено.
    Подробно здесь
    Ответ написан
    1 комментарий
  • Не понимаю, выполнение кода без итерации?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Каждый раз, когда вы в отладчике проверяете МВыборка2.Следующий() она получает следующую запись.
    Соответственно:
    1. МВыборка2.Следующий() = Истина //выбрана первая запись
    2. "МВыборка2.Следующий() <> Истина" = Истина //здесь уже МВыборка2.Следующий() = Ложь, т.е. второй записи в выборке нет
    3. МВыборка2.Следующий() = Ложь //в выборке всё еще нет второй записи
    Ответ написан
    Комментировать
  • Как в запросе выбрать реквизиты с регистров накопления?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Реквизиты доступны только для конкретной записи, следовательно и выборку надо делать до движений, тогда реквизиты можно будет выбирать.
    Настройцки выборки в конструкторе под шестеренкой, чтоб она стала доступна, нужно выбрать регистр в списке "таблицы".
    Ответ написан
  • Как найти совпадение в структуре и в выпадающем списке?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Ну, давай рассуждать логчески. У выпадающего списка есть источник данных. Если, как ты говоришь, он ссылается на справочник, то, в нем содержаться се элементы справочника, следовательно, чтбы найти нужный элемент в списке, тебе нужно найти его в справочнике.
    Ответ написан
  • Все условия, для виртуальных таблиц, пишутся в параметре виртуальной таблицы? Или не все?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Суть в том, что виртуальная таблица, она потому и виртуальная, что не существует в базе данных. Виртуальная таблица это выборка, которая формируется из физической таблицы в момент обращения.
    Когда вы пишете условия "во вкладке условия", у вас выполняется запрос который извлекает из БД виртуальную таблицу, со всеми данными, включая те что вам не нужны. А потом по этой выборке делается еще отбор в соответствии с условиями.
    Когда же вы указываете условия в параметрах виртуальной таблицы, она сразу выбирается с учетом ваших условий. Таким образом нагрузка на сервер меньше, запросов меньше, памяти тратится меньше, у пользователей всё работает быстрее, все довольны и вы молодец.
    Ответ написан
    2 комментария
  • Проблема синхронизации КД2?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Не уверен, что эта ошибка связана именно с КД, похоже что у вас проблемы с целостностью базы. Я бы сделал ТИИ (естественно с предварительным бекапом базы и очисткой кеша).

    P.S. Очистка кеша здесь скорее всего не поможет, но по традиции не помешает.
    Ответ написан
    1 комментарий
  • Как достать значение с регистра сведений в 1с?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    С запросом всё так, точнее не так, но не заполняется оно у вас не поэтому.
    Выборку то нужно обходить. Если вы уверены что там у вас одна запись, то вот так:
    ВыборкаДетальныеЗаписи.Следующий();
    ЭтотОбъект["АктуальнаяПодписка"] = ВыборкаДетальныеЗаписи.Подписка;

    И у вас там условие странное.
    Ответ написан
  • Не могу указать реквизит в структуре?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    То, что у вас в документе есть соответствующий реквизит, это конечно хорошо. Но, код у вас выполняется, судя по ошибке, в модуле формы элемента справочника "ТестМассива". А в контексте этой формы, у вас очевидно нет ни переменной, ни реквизита формы "НзваниеСклада"
    И все-таки, лучше исправьте опечатку, иначе об нее будете еще долго спотыкаться. Или когда-нибудь в будущем боком вылезет.
    Ответ написан
    2 комментария
  • Создание нового типа документа в конфигураторе?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    С типами всё в порядке? Тип реквизита документа "Партнеры" совпадает с ТекущийПользователь.Партнеры?
    у 1С не строго типизированный язык, и если типы не совпадают, то просто оставит пустое значение, без ошибок и ругани.
    Ответ написан
  • Необходимо перенести индивидуальные цены для клиентов с 1С на сайт, возможно ли это сделать?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    теоретически конечно возможно
    практически, вы не указали ничего, ни какая у вас конфигурация в 1С, ни какой у вас сайт.
    Ответ написан
  • Переменная не определена?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Расширение тут не при чем. По вашему скриншоту этого не видно, но логика подсказывает, что вы в клиентском коде вызываете серверный модуль.
    Ответ написан
    3 комментария
  • Справочник, форма выбора, списка,элемента,группы, почему ничего не изменяется?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Ох, очевидно что ты забыл почитать основы. Оно конечно понятно, учиться некогда, работать надо.
    1. Формы, если они не созданы и не выбраны, создаются автоматически, если ты добавляешь форму, она по умолчанию тоже создается такой-же, как созданная в режиме исполнения. Т.е. если ты создал форму, и ничего в ней не кастомизировал, то она будет выглядеть так же, как если бы ты её не создавал.
    2. Форму группы ты не можешь выбрать, потому что для этого справочника не может быть групп - на закладке Иеррархия не стоит галка "Иеррархический справочник", либо стоит, но тип иеррархии выбран: "Иеррархия элементов"
    3. Невозможность непосредственного удаления элементов справочника, это часть системы контроля ссылочной целостности. Когда ты помечаешь элемент на удаление, ты затем можешь провести операцию "Удаление помеченных объектов" - программа проверит, нет ли у других объектов ссылок на помеченный объект, и только в случае если нет, позволит удалить элемент окончательно. Можно настроить справочник так, чтобы для него было разрешено непосредственное удаление элементов, но это нужно делать очень редко, только в тех случаях, когда ты разработал конфигурацию таким образом, что на удаляемый элемент точно не может быть ссылок. Если всё-же удалить элемент на который есть ссылка, то во всех таких местах будет указано значение "Объект не найден" и будут всевозможные глюки, суть которых полностью зависит от бизнес-логики твоей конфигурации.
    Ответ написан
    3 комментария
  • С чего начать в 1С?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Начать надо с работы в франче. А дальше как пойдет.
    Ответ написан
    Комментировать
  • Как привязать изменение одного реквизита другому?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    На примере справочника "Номенклатура поставщиков" такой кейс вообще странный, потому что оно для того и сделано разными справочниками, чтобы решить проблему, когда одна и та же номенклатура, у нас и у поставщика по разному называется.
    Если формально решать задачу; "при изменении реквизита изменить другой", то решение зависит от того, обычные у вас формы или управляемые. Предположу что управляемые, поскольку они используются практически во всех современных конфигурациях. Тогда нужно для реквизита1 добавить обработчик события ПриИзменении, и в нем описать алгоритм заполнения реквизита2. Чтобы в управляемых формах добавить обработчик события, нужно вызвать контектное меню реквизита1 и в пункте "События" выбрать <ПриИзменении> После чего выбрать, какой обработчик события вам нужен, на клиенте, или на клиенте с обработкой на сервере.
    Ответ написан
    1 комментарий
  • Как узнать предназначения полей БД 1С?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Используйте функцию ПолучитьСтруктуруХраненияБазыДанных()
    Подробнее по ссылке: professia1c.ru/sql/kak-uznat-imena-tablits-1s-v-sql

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

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Ном = Справочники.Номенклатура.НайтиПоРеквизиту("Гарантия", ЗначениеРеквизита);

    Этот способ подходит для поиска по реквизитам справочника. И он ищет только первый элемент и не годится, если их несколько.
    Но, поскольку вы пишете что вам нужно осуществить поиск по дополнительному реквизиту, то вам прийдеться писать запрос, и решение зависит от того, как в вашей конфигурации реализованы дополнительные реквизиты.
    Например, в конфигурации УНФ, дополнительные реквизиты, это элементы табличной части справочника Номенклатура. При этом "свойство", т.е. имя реквизита, в вашем случае "Гарантия", это план видов характеристик ДополнительныеРеквизитыИСведения. Запрос будет выглядеть примерно так:
    Запрос = Новый Запрос;
    	Запрос.Текст = 
    		"ВЫБРАТЬ РАЗЛИЧНЫЕ
    		|	НоменклатураДополнительныеРеквизиты.Ссылка КАК НоменклатураСсылка
    		|ИЗ
    		|	Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
    		|ГДЕ
    		|	НоменклатураДополнительныеРеквизиты.Свойство = &Свойство
    		|	И НоменклатураДополнительныеРеквизиты.Значение = &Значение";
    	
    	Запрос.УстановитьПараметр("Значение", ЗначениеГарантии);
    	Запрос.УстановитьПараметр("Свойство", СсылкаНаПВХ_Гарантия);
    	
    	РезультатЗапроса = Запрос.Выполнить();
    	
    	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    	
    	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    		// Вставить обработку выборки ВыборкаДетальныеЗаписи
    	КонецЦикла;
    Ответ написан
    Комментировать
  • Как проверить добавленный через расширение реквизит объекта (булево) в общем модуле?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Ну, этот реквизит должен прийти в функцию с параметрами. Например, если в параметре ДокументРасчетов и есть тот документ, которому вы добавили реквизит, то так и нужно проверять, через точку: ДокументРасчетов.ПолнаяОплата
    Ответ написан
    Комментировать
  • Ошибки при работе с мобильным клиентом в 1С: Управление торговлей. Скажите в чем может быть причины таких ошибок и какие есть пути их устранения?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Исхожу из того, что ошибки не связаны с работой сети на стороне клиента, хотя, не зная какие тесты были проведены, не могу быть в этом уверен.
    Если ошибки плавающие, то пропадают, то появляются, значит ошибки связаны с нестабильной работой сервера 1c.tg-alterra.ru Возможно в какие-то моменты сервер перегружен и не успевает обрабатывать запросы.
    Если же ошибка возникает постоянно (насколько я понял это не ваш случай), то это может быть связано с изменениями в алгоритмах работы сервера, и тогда нужно обновить клиентское приложение.

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