• Как ограничить вместимость склада?

    @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) В момент времени, когда эта информация требуется согласно процессу.

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

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

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

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

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

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

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

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

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

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

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

    @Dementor
    программист, архитектор, аналитик
    Теги неудачные. Согласно описания вам не нужна 1С - это всегда нужно платить деньги. И тем более не нужна ERP - это всегда нужно платить очень большие деньги!

    А вот CRM - именно то, что описано в тексте вопроса. Погуглите "бесплатная CRM" и выбирайте из вариантов. Лично я бы предпочел Битрикс24, но вариантов и без него хватает.
    Ответ написан
    Комментировать
  • ОтправкаPushУведомлений?

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

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

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

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

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

    @Dementor
    программист, архитектор, аналитик
    То есть, вот я смотрю по вакансиям, нужно знать БУ, УТ, УПП, тд и тп. То есть я должен быть, типа, бухгалтером, чтобы пойти туда где требуется знание конфигурации БУ?
    Это следует читать как "нужно иметь сертификат 1С:Профессионал или опыт от полугода".

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

    И как это вообще нужно учить?
    На курсах или сразу на практике. Если сидеть дома и наугад кликать кнопки в программе, толку не будет.

    Например, если в вакансии требуется понимание, или начальное знание БУ, я должен книгу на 500 страниц изучить и тогда я могу сказать я программист 1С БУ или как?
    Начальные знания - это пара статей в интернете и несколько роликов на ютубе, где рассказывают про план счетов, типовые операции и отчетность. Книга на 500 страниц - это уже продвинутый уровень.

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

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

    И какие для старта нужно типовые конфигурации знать, есть самые простые с которых можно начать, или надо посмотреть какие в вакансии, почитать про них и устраиваться?
    Согласен с Александром - УТ является самой ходовой конфигурацией, после которой легко освоить все остальные.
    Ответ написан
    2 комментария
  • Какие проблемы встречаются при использование PostgreSQL для 1c на Linux Mint?

    @Dementor
    программист, архитектор, аналитик
    Если поднимаете на Минте (по сути Дебиан) сервер 1С и вам не нужны виндузные примочки, то все будет отлично. В зависимости от того как разберетесь с конфигами у вас будет проседание производительности по сравнению с виндовс и скулем на точно таком же железе или наоборот получите выигрыш.

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

    @Dementor
    программист, архитектор, аналитик
    Идея хорошая и соответствует принципам инженерии программирования. У меня на кафедре даже дипломы защищали на тему переиспользования кода.

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

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

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

    2) Судя по скрину в комментарии, "Пользователь" и "Подписка" - это измерения. Следовательно в срезе последних для одного пользователя может быть несколько подписок и не все из них будут актуальными. Условие по актуальности нужно прописать в условии запроса и передать туда параметром дату актуальности документа (в зависимости от задачи может не равняться текущему времени)

    3) Чтобы получать доступ к данным выборки запроса, следует использовать метод Следующий()
    ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
    ВыборкаДетальныеЗаписи.Следующий(); // позиционирование на первую запись
    ВыборкаДетальныеЗаписи.Следующий(); // позиционирование на вторую запись
    Ответ написан
  • Табличная часть используется, если неизвестен объем или длина, это как понимать?

    @Dementor
    программист, архитектор, аналитик
    заранее неизвестно, какой будет объем или длина.

    Коллеги верно отметили, что трудно угадывать без контекста. Но судя по тому, что видео обучающее для новичков, то высока вероятность, что лектор хотел сказать:

    Неизвестный объем данных - значит задание еще не финализировано и для хранимых сущностей могут появляться новые описательные характеристики. Если все делать реквизитами документа, то сразу две сложности: добавить характеристику для каждого объекта в свойства документа и добавить связанный элемент формы на форму. Как пример - в документе указывается несколько контактных лиц и их контакты; изначально планировали только телефон, а потом решили добавить e-mail. Когда у тебя табличная часть, то тебе нужно один раз описать новый реквизит табличной части и добавить на форме колонку - все, у всех хранимых объектов появилось новое свойство и его можно вносить/сохранять/просматривать.

    Неизвестная длина данных - это про количество хранимых данных, про длину списка. Я видел много раз, когда в конфигурациях (даже типовых) делают "Член инвентаризационной комиссии №1", Член инвентаризационной комиссии №2", Член инвентаризационной комиссии №3"... А если еще нужно десять людей указать? Проще создать табличную часть и больше не думать о количестве.
    Ответ написан
    Комментировать
  • Как кодом добавить значение в табличной части 1с?

    @Dementor
    программист, архитектор, аналитик
    Попробуйте так:
    Элементы.Детали.ТекущиеДанные.ПлановаяДатаВозврата = ТекущаяДата() + 7 * 86400;
    Ответ написан
    1 комментарий