Создание печатной формы МойСклад

Шпаргалка по созданию печатных форм МойСклад

Начать. Это бесплатно
или регистрация c помощью Вашего email-адреса
Создание печатной формы МойСклад создатель Mind Map: Создание печатной формы МойСклад

1. Вопросы

1.1. Telegram группа для вопросов @moysklad_forms

1.1.1. Все предложения по шпаргалке или новые формулы пишите в группу. Буду стараться обновлять данные.

1.2. Telegram: @wmakeev

2. Общее

2.1. Отладка формул

3. Штрих-коды / ценники / этикетки

3.1. Генерация штрих-кода (на стороне сервера)

3.1.1. barcode4j.generateCode

3.1.1.1. Настройка вывода штрих-кода

3.1.1.1.1. шаблон

3.1.1.2. Подбор качества штрих-кода (dpi)

3.1.1.3. Описание модуля на сайте разработчика

3.1.2. Шаблоны для печати этикеток

3.1.2.1. Готовые шаблоны для печати этикеток

3.1.2.2. Пример этикетки 46x25

3.1.2.3. Шаблон для печати этикеток из отчета "Остатки"

3.1.2.4. Шаблон для печати штрих-кодов на товары и их серийные номера (форма для документа с позициями)

3.2. Генерация штрих-кода (на стороне Excel)

3.2.1. шрифт штрих-кода EAN13

3.2.2. пример использования

3.3. Ограничения Excel

3.4. Работа с ценами

3.4.1. Доступ к типам цен из документа

3.4.1.1. ${position.good.salePrices.priceList[1].currency.name}

3.4.1.2. ${position.good.salePrices.first().priceType.name}

3.4.1.3. ${position.good.salePrices.findPrice("Цена продажи!").value}

3.4.2. Формула из карточки товара (ценники)

3.4.2.1. ${formatter.printShortAmount(posrow[0].salePrices.findPrice(priceTypeId).priceValue)}

4. Официальная справка МойСклад

4.1. Общая информация о шаблонах печатных форм

4.2. Создание шаблонов печатных форм (основные формулы)

5. Связи между документами

5.1. Как получить документы по связям

5.2. Доступ к связанным документам из отгрузки

5.3. Список отгрузок из заказа

5.4. Названия полей со связанными документами можно найти в Модели по ссылке.

5.4.1. Как найти нужный документ?

5.5. Примеры

5.5.1. Заказ поставщику

5.5.1.1. ${o.getCustomerOrders().iterator().next().sum.sum}

6. Разное

6.1. Объектная модель печатных форм (не закончено!)

6.1.1. не разобрано

6.1.1.1. position

6.1.1.1.1. tail

6.1.1.2. operation

6.1.1.2.1. project

6.1.1.3. Отчеты

6.1.1.3.1. Глобальные объекты со значениями фильтра отчета

6.1.1.4. Характеристики товара

6.1.1.5. Good

6.1.1.5.1. ${goods[0].salePrices.findPrice(priceTypeId).currencyRef.name}

6.1.2. Отчеты

6.1.2.1. BaseLegendTO

6.1.2.1.1. {name, description, externalCode, id}

6.1.2.1.2. Документ

6.1.2.1.3. Agent

6.1.3. Документы

6.2. Разобрать

6.2.1. ${formatter.evaluateJexl(row.payments, "payments", "var ret='';var i=0; for (var s: payments){if (i>0){ret=ret+', ';} ret=ret+s.name; i=i+1;} return ret;")}

7. Отчеты

7.1. Циклы

7.1.1. Загрузка документов

7.1.1.1. ${formatter.loadOperations(rows)}

7.1.1.1.1. Список сущностей отчета (напр. CustomerOrder)

7.1.1.2. ${formatter.loadOperationsWithFilters(rows, "Время доставки:с 11.00 до 15.00,Доставка:300 руб")}

7.1.1.3. ${formatter.loadStocksWithGoodsList(rows)}

7.1.1.4. ${formatter.loadGrouppedOperations(rows)}

7.1.2. Группировка

7.1.3. Нумерация строк по порядку

7.2. Итоги

7.2.1. $[SUM(G14)@0]

7.3. Перемещение

7.4. Выражения

7.5. Решения

7.5.1. Вывод позиций документов

7.5.1.1. Заказ покупателя

7.5.1.1.1. <jx:forEach items="${row.shipments}" var="shipment"

7.5.1.2. Перемещение

7.6. Возможные ошибки

7.6.1. Формула в одну строку

8. Вспомогательные методы formatter'а

8.1. countPlaces

8.2. cost

8.2.1. report-Demand profit.xls

8.3. createDate

8.4. currentUser

8.4.1. uid

8.4.2. firstName

8.4.3. secondName

8.4.4. shortFIO

8.5. currentMoment

8.5.1. ${formatter.getExcelDate(formatter.currentMoment)}

8.6. findAttribute

8.6.1. Наименование - Тип поля

8.6.1.1. Строка - valueString

8.6.1.2. Текст/Ссылка - valueText

8.6.1.3. Дата - timeValue

8.6.1.4. Флажок - booleanValue

8.6.1.5. Целое число - longValue

8.6.1.6. Дробное число - doubleValue

8.6.1.7. Селекторы (справочники)

8.6.1.7.1. пользовательский - entityValue.name

8.6.1.7.2. сотрудники - employeeValue.name

8.6.1.7.3. контрагенты - agentValue.name

8.6.1.7.4. серии - consignmentValue.name

8.6.1.7.5. тоары - goodValue.name

8.6.1.7.6. склады - placeValue.name

8.6.1.7.7. проекты - projectValue.name

8.6.1.7.8. договоры - contractValue.name

8.7. firstNotEmpty

8.8. getExcelDate

8.9. getMonthName

8.10. getGoods

8.11. getServices

8.12. getCurrency

8.13. goodsAmount

8.14. generateList

8.15. localize

8.16. round

8.17. printIf

8.17.1. ${formatter.printIf(not empty(position.code),"Арт. " + position.code)}

8.17.2. В качестве альтернативы лучше использовать тернарный оператор (см. примечание)

8.18. printIfElse

8.18.1. formatter.printIfElse(empty([...]), [true], [false])

8.18.2. В качестве альтернативы лучше использовать тернарный оператор (см. примечание)

8.19. printAgentName

8.20. printAmount

8.20.1. formatter.printAmount(123) → 'Один рубль 23 копейки'

8.20.2. formatter.printAllWordsAmount(123) → 'Один рубль двадцать три копейки'

8.21. printShortAmount(price)

8.21.1. formatter.printShortAmount(goods[0].salePrices.findPrice(priceTypeId).priceValue)

8.22. printShortAmountWithChange(price)

8.22.1. ${formatter.printShortAmountWithChange(position.salePrices.findPrice(priceTypeId).priceValue)}

8.23. printTags

8.24. splitByLines(text, maxLines, lineLength)

8.24.1. ${formatter.splitByLines(goods[1].name, 6, 5)}

8.25. splitGoodList(positions, N)

8.25.1. <jx:forEach items="${formatter.splitGoodList(positions, 3)}" var="goods">

8.26. stock(position)

8.27. shipped(position)

8.28. imageAttribute

8.28.1. печать организации

8.28.2. .getGoodImageElseNotFound

8.29. Подгрузка сущности

8.29.1. loadAgent

8.29.2. loadGood

8.29.3. loadConsignment

8.29.4. loadOperations

8.29.4.1. loadGrouppedOperations

8.29.5. loadStock

8.29.5.1. loadStocksWithGoodsList

8.30. Время и дата

8.30.1. createDate

8.30.2. getExcelDate

8.30.2.1. Дата в отдельной ячейке

8.30.3. currentMoment

9. Форматирование данных

9.1. Дата

9.1.1. Примеры

9.1.1.1. ${formatter.format("%1$td.%1$tm.%1$tY %1$tH:%1$tM", formatter.getExcelDate(row.moment))}

9.1.1.2. ${formatter.format("%1$td.%1$tm.%1$tY %1tR", o.moment)}

9.1.2. Документация

9.1.2.1. Java

9.1.2.2. Android

9.1.3. [поле_формата_дата].getTime()

9.1.3.1. Вывод даты с корректировкой на некий период времени

9.1.4. Excel шаблон с примерами формул

9.2. Деньги

9.2.1. Примеры

9.2.1.1. на сумму ${formatter.format("%.2f", o.sum.sum / 100)} руб

9.2.1.2. 3 руб. 00 коп.

9.2.1.2.1. ${formatter.format("%1$4.0f руб. %2$02.0f коп.", [сумма] / 100, [сумма] % 100)}

9.2.2. Отбрасывание копеек

9.2.2.1. formatter.round(o.sum.sumInCurrency/100)*100

10. POI

10.1. Объекты

10.1.1. Sheet

10.1.1.1. getRow()

10.1.2. Row

10.1.2.1. getCell()

10.1.3. Cell

10.1.3.1. setCellValue()

10.2. Доступные объекты

10.2.1. Лист

10.2.1.1. ${sheet}

10.2.2. Текущая строка

10.2.2.1. ${hssfRow}

10.3. Примеры формул

10.3.1. ${sheet.getRow(0).getCell(1).setCellValue(sheet.getRow(0).getCell(0).getNumericCellValue())}

10.3.2. ${hssfRow.getHeight()}

10.3.3. ${sheet.setRowBreak(hssfRow.getRowNum())}

11. Формулы

11.1. Теги

11.1.1. jx:forEach

11.1.1.1. groupBy

11.1.1.1.1. groupOrder

11.1.1.1.2. Aggregate functions

11.1.1.1.3. Пример формы с группировкой и сводными расчетами (aggregate functions)

11.1.1.1.4. Пользовательские атрибуты

11.1.1.1.5. Группировка по дате

11.1.1.1.6. Позиции

11.1.1.1.7. Сложности

11.1.1.2. select

11.1.1.2.1. Пример фильтрации по строке

11.1.1.3. varStatus

11.1.1.4. Загрузка документов

11.1.2. jx:outline

11.1.3. jx:if

11.2. Запись формул Excel

11.2.1. Соответствие англоязычных и русскоязычных формул в Excel

11.2.1.1. ВПР - VLOOKUP

11.2.1.2. Excel файл с соответствием формул RU-ENG

11.2.2. Ошибки

11.2.2.1. Формула не проходит

11.3. Полезные формулы

11.3.1. Округление вверх

11.3.2. Вставка гиперссылки

11.3.2.1. пример

11.3.3. Работа со строками

11.3.3.1. Выделение части строки - substring

11.3.3.2. Методы объекта строки

11.3.3.2.1. name.[формула] ➝ [результат]

11.3.3.2.2. name = "NA-ord-16991"

11.3.3.2.3. name.charAt(2) ➝ A

11.3.3.2.4. name.concat(' some') ➝ NA-ord-16991 some

11.3.3.2.5. name.contains('NA') ➝ true

11.3.3.2.6. name.replaceFirst('\d', '0') ➝ NA-ord-06991

11.3.3.2.7. name.replaceAll('\d', '0') ➝ NA-ord-00000

11.3.3.2.8. name.replace('NA', 'FOO') ➝ FOO-ord-16991

11.3.3.2.9. (name.split('-'))[0] ➝ NA

11.3.3.2.10. name.toLowerCase() ➝ na-ord-16991

11.3.3.2.11. name.toUpperCase() ➝ NA-ORD-16991

11.3.3.2.12. name.concat(' ').trim() ➝ NA-ord-16991

11.3.3.2.13. name.toCharArray().get(0) ➝ N

11.3.4. Последнее событие

11.4. Функции

11.4.1. empty(...) → bool

11.4.1.1. Отрицание not empty(...)

11.4.2. .size( )

11.5. Свойства

11.5.1. [entity].type

11.6. Общие замечания

11.6.1. Доступ к массивам

11.6.1.1. formatter.loadAgent(row.id).tags[0]

11.6.1.2. (formatter.loadAgent(row.id).tags)[0]

11.6.1.3. formatter.loadAgent(row.id).tags.get(0)

11.6.1.4. o.getCustomerOrders().iterator().next().name

11.6.2. Управляющие символы

11.7. Разъяснить

11.7.1. Акт сверки D11

12. Модель

12.1. Формулы для изучение методов объектов печатных форм

12.1.1. Судя по всему сейчас эта возможность не доступна

12.1.2. test-java-entity-class.xls

12.1.2.1. test-java-entity-class-TEST.xls

12.1.3. test-java-entity-superclass.xls

12.1.3.1. test-java-entity-superclass-TEST.xls

12.1.4. test-java-formatter.xls

12.1.4.1. test-java-formatter-TEST.xls