Можно ли добавить дополнительные колонки для товара?

  • 1,1K Просмотров
  • Последнее сообщение 13 марта 2019
Игорь написал 11 декабря 2018

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

Например, 

- Состав продукта
- Энергетическая ценность
- Срок хранения
- Срок годности
- Изготовитель и тд

Как такое реализовать? 

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

И попутно вопрос: можно ли увеличить кол-во символов для поля "Телефоны" у контрагента? 

Сортировка: Стандарт | Новые | Голоса
Danil написал 11 декабря 2018

Здравствуйте!

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

  • вы самостоятельно можете это сделать, понадобится разобраться в некоторых тайных знаниях, за основу можно взять модуль "Описание товара" или "Страна производства", так же можете задавать нам вопросы, мы поможем разобраться
  • мы можем вам это все добавить, но взамен попросим приобрести 1-2 платные лицензии нашей программы

Длину поля "Описание товара", как "Телефоны" можно поправить в модуле, в случае Описания товара, там есть файл GoodInfо.оbject со следующим содержимым:

<FieldDescription FieldName="Описание" Description="Дополнительная информация по товару" DBFieldName="Description" Type="String" Length="250" ForSearch="False" />

Увеличивайте на сколько требуется, значение 0 сделает строку практически "безразмерной".

Что бы найти содержимое модуля в версии 1.7 в списке модулей появилась кнопка "Открыть папку модуля". Переносите содержимое модуля в папку Дополнения и дальше препарируйте его как хотите.

Для перевода строки в Описании товара жмите Ctrl+Enter

Игорь написал 11 декабря 2018

Спасибо за ответ.

Вот, что я сделал:

- Создал папку Дополнения, скопировал туда модуль "Описания товара".
- Изменил длину поля, название поля.
- Подключил папку Дополнения в конфигурации

В итоге изменения не произошли. Возможно, нужно как-то подключить этот измененный модуль?

burn написал 11 декабря 2018

Спасибо за ответ.

Вот, что я сделал:

- Создал папку Дополнения, скопировал туда модуль "Описания товара".
- Изменил длину поля, название поля.
- Подключил папку Дополнения в конфигурации

В итоге изменения не произошли. Возможно, нужно как-то подключить этот измененный модуль?

Перезапустите программу, после размещения модуля.

Danil написал 11 декабря 2018

Нет не нужно, скорее наоборот, лучше в таком случае удалить модуль "Описание товара", что бы он не пересекался. Либо в списке конфигураций отметить галочку "После модулей"

Решили выбрать первый путь? Тогда, давайте погружаться.

Файл который вы изменили отвечает за описание поля в базе данных и в программе. Но раз вы в нем изменили и наименование то теперь нужно и изменить файл который отвечает за расположение этого поля в карточке товара. За это отвечает файл GoodInfo.form. Его вы тоже скопировали в папку с дополнениями?

<TextBox Column="1" Value="[Описание]" Multiline="true" Height="100"/>

В выделенном указано поле с каким наименованием будет использовано в карточке товара. Карточка товара в программе разделена на области (контейнеры) в модуле указывается:

<FormPart ContainerName="GoodPanel" >

наименование контейнера куда будет добавлен. В карточке товара есть два контейнера:

как видно из файла GoodInfo.form поле добавляется в контейнер GoodPanel, но можно добавлять новые поля и в виде закладок в нижней части карточки в контейнер GoodTabs, к этому перейдем когда убедимся что у вас все получилось с описанием.

Игорь написал 11 декабря 2018

Решили выбрать первый путь?

Путь самурая)

Его вы тоже скопировали в папку с дополнениями?

Да, я скопировал весь каталог 7b86659e-aa5d-4bbf-8345-1b0b5e2afbbb-1.4

Длину поменять удалось, название тоже. 

Нет не нужно, скорее наоборот, лучше в таком случае удалить модуль "Описание товара", что бы он не пересекался. Либо в списке конфигураций отметить галочку "После модулей"

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

Колонки в БД создаются автоматически на основании xml?

Есть ли быстрый способ тестирования без перезапуска программы?

Danil написал 11 декабря 2018

Длину поменять удалось, название тоже. 

отлично, значит дело пошло

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

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

Колонки в БД создаются автоматически на основании xml?

да, но только в процессе запуска программы

Есть ли быстрый способ тестирования без перезапуска программы?

если вы меняете файл определяющий колонки в БД, то перезапуск программы будет обязательным (см. выше), в остальном, если программу запустить с ключом -debug то при изменении файлов с расширением form программа будет подхватывать изменения и достаточно будет только закрыть и заново открыть ту форму, которую вы правили, в нашем случае это карточку товара ... как я понимаю, со временем мы доберемся и до печатных форм (файлы tcr или tcrp), так вот для их проверки не надо перезапускать программу они будут подхватываться автоматически

Итак, значит у нас как я понимаю получилось добавить новый реквизит в карточку товара. Теперь нужно разместить еще ряд и поменять длину реквизита в контрагентах. Начнем с контрагентов. В основной папке Config (прописана в списке конфигураций) вы увидите файл Dictionaries.object в нем описаны все справочники существующие в программе по умолчанию, там же вы можете найти и справочник контрагентов с его полем Телефон. Так вот, его править там не надо Переносите его по аналогии с Описанием товара в отдельный файл в модуле. Только тэг касающийся реквизита Телефон и уже в модуле (Дополнениях) устанавливаете нужную вам длину этого реквизита. Так как программа сначала обрабатывает каталог Config, а потом дополнения то она подхватит последнее определение для этого реквизита.

Возвращаемся опять к товарам, у вас целая жменя реквизитов которые вы хотите добавить. Я думаю уже понятно как их добавить, можно в тот же файл где вы сделали свой реквизит из Описания товара. Какие реквизиты могут принимать типы, можно посмотреть в Dictionaries.object в папке Config. А вот что касается отображения, предлагаю их все же разместить на отдельной вкладке. Не нашел где в модулях у нас есть пример, поэтому приведу кусок из модуля для одного из наших пользователей:

    <FormPart FormName="Goods" ContainerName="GoodTabs" >

        <TabPage Label="Дополнительные реквизиты">

            <Panel Height="30">

                <Label Label="Дата инвентаризации" Width="215" />

                <DateTimePicker Column="1" Value="[Дата инвентаризации]" Required="false" Width="150" />

            </Panel>

        </TabPage>

    </FormPart>

пока все, ждем результат или вопросы

Игорь написал 11 декабря 2018

Добавил новое поле под описанием, добавил также вкладку, прописал создание колонки с типом DateTime. Пока что все просто.)

Какие реквизиты могут принимать типы, можно посмотреть в Dictionaries.object в папке Config.

Возможно, я не правильно вас понял, но там я ничего такого не нашел и значения атрибутов смотрел в *.xsd файлах.

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

Как чистить мусор? Если, например, я хочу удалить колонку из БД с "датой инвентаризации".

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

Danil написал 11 декабря 2018

Возможно, я не правильно вас понял, но там я ничего такого не нашел и значения атрибутов смотрел в *.xsd файлах.

отлично, так и надо было делать

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

обязательно и даже раздел соответствующий в вики завели, то при выборе делать новые фичи или писать документацию для разработчиков, побеждает первое

Как чистить мусор? Если, например, я хочу удалить колонку из БД с "датой инвентаризации".

удаляете колонку из определения в xml-е и программа должна будет её удалить из базы при следующем запуске

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

создаете файл (или берете рыбу из существующего) вида <Название модуля>.manifest.json в нем содержится информация о модуле в виде json-а:

{

    "Id": "810e4384-9337-4e33-b35c-bbb1930cc825", // Guid идентификатор уникально определяющий модуль

    "AppName": "Торговое место", // Имя приложения, пока только "Торговое место"

    "Name": "Размер для ценника", // Наименование модуля

    "Description": "Добавляет ...", // Описание модуля

    "Version": "1.3", // Версия модуля

    "MinVersion": "2.1.1705", // Минимальная версия платформы

    "MinAppVersion": "1.3" // Минимальная версия приложения, в нашем случае "Торговое место"

}

и как я уже писал, архивируете это в зип и "скармливаете" программе через "Загрузить из файла", что бы он появился в списке модулей как остальные это уже надо его размещать на нашем сервере, без нашего участия это пока никак не сделать, а над размещением сторонних модулей у нас на сервере мы пока не думали 

Еще конечно интересно, как делать выпадающие списки, всплывающие окна, сохранения со своей логикой.)

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

у вас вроде еще было желание выводить на печатных формах, нет?

Игорь написал 11 декабря 2018

что бы он появился в списке модулей как остальные это уже надо его размещать на нашем сервере

В ином случае он просто не появится, но будет работать?

У меня принтер этикеток Xprinter, подключается по USB. Его возможно совместить с вашей программой?

Danil написал 11 декабря 2018

В ином случае он просто не появится, но будет работать?

он появится, но только у вас, если кто-то еще захочет ваш модуль, то он должен будет получить от вас зип файл

У меня принтер этикеток Xprinter, подключается по USB. Его возможно совместить с вашей программой?

 Xprinter отлично работает с нашей программой, устанавливаете на него драйвера и печатает, примерно так

Игорь написал 11 декабря 2018

Состав в печатную форму вывел, со стилями вроде все понятно.


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

Danil написал 11 декабря 2018

Да, нужно добавлять дополнительное поле в товар

Игорь написал 13 марта 2019

Здравствуйте, можно ли выводить поле только в том случае, если оно заполнено? Для пустых полей у меня выводятся их названия. Существует ли такое условие в шаблоне печатных форм или атрибут?

 

Danil написал 13 марта 2019

Приветствую!

Пришлите нам шаблон или сюда приложите, подскажем как правильно сделать.

Close