• Почему при определении типа параметра в массиве выдает ошибку?

    @Dementor
    программист, архитектор, аналитик
    Ранее kisaa правильно ответил - ошибка именно в создании массива. Если бы вы в окошке ошибки нажали кнопку "Подробно...", то могли бы сразу это увидеть.

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

    @Dementor
    программист, архитектор, аналитик
    0) На торрентах есть все - вопрос только в умении найти.
    1) Если у вас активна подписка ИТС, то ваш партнер обязан вам бесплатно предоставить конфигурацию, которую сам же вам и продал.
    2) Если партнер требует дополнительных денег, то пишите на него жалобу в k@1c.ru
    3) На релизах, где можно скачать обновления, обычно первая запись - это полная версия, из которой можно получить нужную методом пошаговых обновлений.
    4) 1С:ДО ПРОФ 1.* - это полнейший ужас!!!! Вы уверены, что вам нужно ЭТО обновлять? Те, кто удалили вам конфигурацию поставщика, видимо хотели о чем-то намекнуть. Почему просто не поставить 2-ку или 3-ку??? Все настраивать в любом случае нужно заново, а документы можно перенести.
    Ответ написан
    2 комментария
  • Выборка.Следующий() - ложь. Не работает выборка. Как починить?

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


    1. Про результат запроса - все верно, там можно увидеть только структуру и признак заполненности результатами. Чтобы получить содержимое, нужно использовать выборку.

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

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

    Более безопасно делать отладку Выборки с помощью получения количества данных методом Количество(), а потом проверки конкретных строк с помощью метода Получить(Индекс). Теоретически вы даже можете делать обход выборки с помощью обычного цикла по счетчику от 0 до Количество-1, но проще выгрузить результат запроса в ТаблицуЗначений и обходить ее строки - точно никаких заморочек не будет.

    2. Лучше не использовать в параметрах виртуальных таблиц подзапросы - это не позволяет платформе обратится к таблицам с предрассчитанными итогами для быстрого получения результатов и пойдет скан по полной физической таблице. Намного эффективнее (и читабельнее), если вы сделаете сначала выборку ваших материалов по оказанной услуге во временную таблицу, а потом сделаете Левое Соединение с таблицей остатков (или внутреннее, если вам в результате не нужны позиции без остатка).

    Примерно так:
    Запрос.Текст = 
    "ВЫБРАТЬ
    |	ОказаниеУслугиМатериалы.Материал
    |ПОМЕСТИТЬ втМатериалы
    |ИЗ
    |	Документ.ОказаниеУслуги.Материалы КАК ОказаниеУслугиМатериалы
    |ГДЕ
    |	ОказаниеУслугиМатериалы.Ссылка = &Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |	СебестоимостьТоваровОстатки.Номенклатура,
    |	ЕСТЬNULL(СебестоимостьТоваровОстатки.СуммаОстаток, 0) КАК Сумма,
    |	ЕСТЬNULL(СебестоимостьТоваровОстатки.КоличествоОстаток, 0) КАК Количество
    |ИЗ
    |	втМатериалы КАК втМатериалы
    |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьТоваров.Остатки(&МоментВремени, ) КАК СебестоимостьТоваровОстатки
    |		ПО втМатериалы.Материал = СебестоимостьТоваровОстатки.Номенклатура";
    Ответ написан
    Комментировать
  • Как отобразить фотография в табличной части 1С?

    @Dementor
    программист, архитектор, аналитик
    1. Для обычных форм. Добавляем колонку для вывода картинки. В обработчике ПриВыводеСтроки прописываем в оформлении строки заполнение картинки для нужной ячейки.

    2. Для управляемой формы. Добавляем к реквизиту на форме, который связан с источником данных для табличной части, новую колонку, где будет навигационная ссылка на картинку. Выводим новую колонку на форму и указываем вид "Поле картинки".

    Вопрос заполнения навигационной ссылки для управляемых форм зависит от версии платформы и типа источника данных. Например сейчас для динамического списка можно задать вычисляемое поле:
    629340848efa0216283182.png
    Ответ написан
    Комментировать
  • Как отобразить картинку в строке формы списка?

    @Dementor
    программист, архитектор, аналитик
    Ответы на вопрос отличаются от того что и как именно дорабатывается:
    1) Обычное приложение или управляемое, обычная форма или управляемая (допустим гибридный режим работы)?
    2) Если это современные типовые и управляемые формы в режиме управляемого приложения, то это динамический список или вывод таблицы значений (или табличной части)?
    3) Есть желание указать в элементе формы ячейки таблицы набор картинок и оперировать индексами источника для указания нужной; или нужно использовать возможности условного оформления; или вывод нужно делать программным способом (относительно недавно в УФ появился аналог ПриВыводеСтроки из ОФ)?

    P.S. А вообще ответ легко ищется в поисковиках.
    Ответ написан
    Комментировать
  • Почему пускает пользователей в базу при установленной блокировке начала сеансов?

    @Dementor
    программист, архитектор, аналитик
    1. Или вы отмечаете не ту галочку.
    2. Или запрещаете новые сеансы в другой базе.
    3. Или у вас настроен код разблокировки, который знают ваши пользователи.
    4. Или проблемы с серверным кешем. Нужно остановить службу и почистить сеансовые данные.
    Ответ написан
  • Как оформить автоматическое добавление драйвера мобильной платформы?

    @Dementor
    программист, архитектор, аналитик
    В тестовом приложении БТО можно в ручную добавить новый драйвер
    В рабочем - аналогично.

    В 1с я ноль. Как написать готовый инсталятор и через что ? Я пока плыву в теме . Слияние информационных баз , внешние обработки ? Или программист должен сам ручками дописывать код и автоматизация не возможна ?
    Для начала самый простой вопрос, если есть Вы как разработчик драйвера, и есть Пользователь как потребитель, то зачем нужна промежуточная прослойка автоматизации?

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

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

    @Dementor
    программист, архитектор, аналитик
    Что делать?
    Исправить! ))
    Ответ написан
    Комментировать
  • После восстановления поврежденной базы возникает "Ошибка формата потока". Как исправить ситуацию?

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

    Погуглите "Tool 1CD" - этот инструмент для файловых баз тоже умеет более умело чем ТиИ исправлять проблемы со внутренней структурой. А так же позволяет выгрузить таблицы данных, .чтобы загрузить в базу-копию.
    Ответ написан
    Комментировать
  • Как в номенклатуру 1с(v7.7) добавить поле штрихкод?

    @Dementor
    программист, архитектор, аналитик
    Тут нужно не гуглить, а программировать.

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

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

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

    @Dementor
    программист, архитектор, аналитик
    Описанное в вопросе решение "в лоб" - одноразовое и его нужно будет переделывать при смене типа хранимых товаров, у которых будут другие параметры.

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

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

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

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

    С точки зрения красивой архитектуры - править нужно сайт. Удобства пользователей - это фронт, а не бэк!

    Вам как заказчику нужно спросить у веб-программиста и у 1С-программиста стоимость доработок по двум сценариям и принять решение кошельком.
    Ответ написан
    Комментировать
  • Как поменять единицу измерения на cs-cart?

    @Dementor
    программист, архитектор, аналитик
    Обратится к специалистам по CS Cart не вариант?
    Ответ написан
    Комментировать
  • Какое событие выбрать?

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

    1) "ПриИменении реквизита Номенклатура" - это сработает для конкретной строки, которую ты редактируешь, а потом ты сменишь строку и на другом типе поведение не изменится. Уже не говорю про сценарий, что ты записываешь документ, закрываешь, открываешь и хочешь поменять количество мест.

    2) "НачалоВыбора реквизита КоличествоМест" - уже лучше, так как нет недостатков первого варианта, но сильно сомневаюсь, что кто-то будет вводить число мест через выбор с помощью калькулятора.

    Максимально оптимальным будет решение с помощью обработчика события ПриАктивизацииЯчейки у таблицы формы - проверяете, что за ячейка активирована, и если это "Количество мест", а в строке номенклатура типа Запас, то разрешаете ввод числа, иначе ТолькоПросмотр=Истина.

    P.S. Еще Антон Антон интересно предложил через условное оформление, но условие должно быть явно на форме - нельзя делать проверку по подчиненным реквизитам. Можно в таблицу добавить скрытый реквизит Тип и его заполнять при открытии формы или при изменении номенклатуры. А далее поставить оформление ТолькоПросмотр=Истина на таблицу, если у строки Тип=Запас.
    Ответ написан
  • Чем открыть файлик 1Cv8.lgd?

    @Dementor
    программист, архитектор, аналитик
    Однозначным ответом может быть только: не трогать этот файл и просматривать журнал регистрации непосредственно из той базы 1С, к которой он относится.

    Судя по содержимому комментариев на самом деле требуется обработка с ИТС для групповой замены реквизитов или "Инструменты Разработчика" с целью удалить информацию из ряда документов в базе.
    Ответ написан
    Комментировать
  • Этапы оплаты получить для печатной формы?

    @Dementor
    программист, архитектор, аналитик
    Не полиглот и не знаю на каком языке вопрос, но попробую перевести на русский:

    Нужно для документа "Заказ клиента" добавить свою печатную форму, в которую выводить данные по этапам и суммам оплаты из текущего документа. При чем требуется реализовать с помощью расширения.
    Уже посмотрел как это реализовано в Обработка.ПечатьЗаказовНаТоварыУслуги и там слишком сложно. Можно ли проще?


    Если я правильно перевел вопрос, тот тут классическая дилемма сложности и универсальности. Вся эта сложная БСП-обвязка, когда с формы вызывается комманда, которая через общий модуль смотрит в менеджер документа, который через общие модули смотрит в дополнительную обработку для печати - это все для универсальности. Чтобы вы не только из документа или формы списка документов могли печатать, но и вообще из любого места (различные пакетные печати и АРМ).

    Если нужно попроще и даже не планируется печать списка документов, то ДА, можно все сделать очень просто - переносите в расширение только форму документа и реализовывайте печать прямо в ней. Если уже нужна печать из списка, то очевидно, что вам в расширение придётся забирать все нужные формы плюс сам документ, что бы начинку печати поместить в модуль менеджера и не дублировать в модулях форм.

    Но! Если вы начинаете работать со сложными конфигурациями и активно используете техники программирования времен УТ10 и УПП, то система может начать работать непредсказуемо и поддержка станет более затратной. Рекомендую разобраться с Обработка.ПечатьЗаказовНаТоварыУслуги - и внести правки в неё.
    Ответ написан
    1 комментарий
  • Текущее кол-во товара как лучше показать?

    @Dementor
    программист, архитектор, аналитик
    Как обычно выводят такую информацию на экран?

    1) На понятном пользователю языке, в знакомом ему формате.
    2) В хорошо видимом пользователю месте.
    3) В момент времени, когда эта информация требуется согласно процессу.

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