Задать вопрос
Ответы пользователя по тегу
  • Какая причина нагрузки на сервер базами sql в которых не работают?

    @Dementor
    программист, архитектор, аналитик
    Если это серверные базы (сомневаюсь, что КА кто-то ставит в файловом виде), то кроме людей там работают регламентные задания. Много регламентных заданий!

    Чтобы понять что именно происходит, можно включить профилирование запросов и посмотреть к каким таблицам идут обращения. Возможно вы поставили каждую секунду пересчет рассчитываемых цен или что-то такое...
    Ответ написан
    3 комментария
  • Почему при определении типа параметра в массиве выдает ошибку?

    @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) КАК Количество
    |ИЗ
    |	втМатериалы КАК втМатериалы
    |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьТоваров.Остатки(&МоментВремени, ) КАК СебестоимостьТоваровОстатки
    |		ПО втМатериалы.Материал = СебестоимостьТоваровОстатки.Номенклатура";
    Ответ написан
    Комментировать
  • Почему пускает пользователей в базу при установленной блокировке начала сеансов?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @Dementor
    программист, архитектор, аналитик
    Вопрос какой-то бессвязные и не имеет смысла.

    как найти совпадение элементов выпадающего списка...., он ссылается на справочник
    Получается на форму выведен реквизит типа СправочникСсылка.ЧтотоТам. При нажатии кнопки выбора значения появляется список последних выбранных и вариант открыть полную форму выбора. Если в первичном списке визуально есть "совпадение элементов", то это никакое не совпадение, а пользователь назвал элементы одинаково. Задача поиска и схлопывания дублей - это классическая задача поддержки баз...

    есть выпадающий список, и у меня есть структура
    А теперь в целом вопрос поиска совпадений элементов в Списках и Таблицах значений, Структурах, Соответствиях и Массивах. Самый простой и понятный метод - это перебором элементов коллекции поиск сколько раз этот элемент встречается в этой же коллекции.

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

    @Dementor
    программист, архитектор, аналитик
    Ответ: Никак!
    Или доступны итоги ресурсов по измерениям, или физические записи без итогов, но с реквизитами.
    Если реквизиты нужны в таблице итогов, то это ошибка - реквизит нужно переделать в измерение.
    Ответ написан
    Комментировать
  • Как передать выделенные строки в другой документ при создании на основании?

    @Dementor
    программист, архитектор, аналитик
    Начнем с того, что задача решаема, но постановка странная. Ввод на основании - это стандартный механизм платформы, который можно вызвать или с формы документа, или с формы списка документов, или вообще программно из кода. И каждый раз используется один и тот же обработчик модуля объекта - ОбработкаЗаполнения. Только во втором и третьем случае не будет выделенных строк.

    Почему появилась такая странная задача? Почему пользователь хочет переносить в новый документ случайные строки и не фиксировать в системе этот факт? Может ли быть, что из 10 строк пользователь выделял 7, но на одной строке ошибся и кликнул дважды, в результате чего в работу ушли всего 6 строк, а он и не заметил пока не стало слишком поздно..?

    1) Грамотным решением было бы в документе при его записи в табличной части сразу сохранять отметки выбранных строк, а потом при вводе на основании уже работаем с этими отметками.

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

    3) Если я чего-то не понимаю и нужно делать именно так как написано, а так же есть храбрость ломать БСП, то тоже все очень просто. В модуле ПодключаемыйКомандыКлиент в процедуре ПродолжитьВыполнениеКоманды в параметре Контекст есть открытая форма, в которой у элемента формы доступно выделение строк. Тут нужно вставить свой код, что если попался нужный тип документа и передана форма объекта с выделенными строками, то формируем структуру, куда передаем ссылку на документ и массив номеров строк. Далее в обработчике ОбработкаЗаполнения заполняемого документа проверяем тип входящего параметра основания и если там наша структура, то далее заполняем стандартно по ссылке из реквизита структуры, а в табличную часть переносим только указанные в массиве строки.
    Ответ написан
    Комментировать
  • ОтправкаPushУведомлений?

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

    Заходите в отладку и ставьте точку останова в проблемной строке. Анализируйте стек вызова и значение переменных - в первую очередь ТипПодписчика.
    Ответ написан
    Комментировать
  • 1c для чайников с чего начать?

    @Dementor
    программист, архитектор, аналитик
    1С - общее название для учетных систем. Битрикс - платформа для веб-разработки. IIKO - система для ресторанов. В одной фразе слишком много различных продуктов.

    Вы хотите научится использовать их в работе или стать разработчиком их функционала?

    1) Для начала не распыляйтесь во все стороны! Выберите максимально прибыльную нишу для вашего региона или региона, куда вы можете переехать (или имеете возможно удаленной работы).
    2) Воспользуйтесь поисковиками и прочитайте все обзоры на нужную вам тему, до которых дотянитесь.
    3) Найдите компанию в вашем регионе, которая специализируется на выбранном ПО, и которым нужны ученики/стажеры - пройдите у них обучение.
    Ответ написан
    Комментировать