Veres Ivan

224
Рейтинг

MrFlanker



  •   Регистрация: 12.04.2012 (12 лет назад)

  •   Был(а) на сайте: 25.04.2024

Друзья
  • Юлия
  • lexandrv lexandrv
  • Андрей Карпов
  • Ziger Zigger
  • Владислав Казначеев
  • дмитрий кустов
  • Дмитрий Малышев
  • Евгений Комиссаров
  • Денис .
  • Андрей Волин
Подписчики 10

Группы

Партнер IS-SP

Профессиональный разработчик

Рейтинг 224

Поиск выпадающих позиций товара в течение года

Отчеты и формы Программист Пользователь Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Управленческий учет Абонемент ($m) Архив с данными Логистика, склад и ТМЦ

Предназначено для типовой конфигурации Торговля и Склад 10.3. Запрос позволяет найти выпадающие позиции, остаток по которым на конец месяца падает ниже определенного порога от среднемесячного остатка.

1 стартмани

23.05.2019    3247    1    MrFlanker    2       

1

Внешняя Печатная Форма Товарный Чек Мини (80мм)

Отчеты и формы Для всех Платформа 1С v8.3 1С:Управление торговлей 10 Windows Абонемент ($m) Внешняя обработка (ert,epf) Печатные формы Розничная торговля

Внешняя печатная форма для Управление Торговлей 10.3 Идеально подходит для печати на принтере чеков шириной 80мм (Posilfex 6000, 7000, 8000 и другие)

1 стартмани

17.10.2014    14220    28    MrFlanker    1       

4

Порядковый номер в запросе (Новым простым способом)

Статья Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free) Нет файла Запросы

По образованию я прикладной математик, ну не смог без боли в глазах смотреть на предлагаемый всюду способ образования натуральных(порядковых) чисел в запросе. Заодно список дат по порядку. Предлагаю новый простой способ. (с) Верес Иван 2014

18.01.2014    62219    MrFlanker    61       

95

Комментарии

DevБаг? Фича?#8 02.04.24 6:11
жесть это
DevСортировка табличной части строк документа в соответствии с иерархией справочника Номенклатура#9 31.03.24 8:38
Отличное решение. Отсортировал таблицу значений по ирерархии. Так как в 1С нет встроеной возможности.
Код
ТабЗнач.Сортировать("Поле ИЕРЕРХИЯ"); // такого к сожалению нету 
DevТестовая задача на вакансию "Старший разработчик 1С"#11 29.03.24 16:56
Формулирую проблема копеек: Сумма взятых по модулю абсолютных отклонений округленных значений от точных должна быть минимальна.
DevТестовая задача на вакансию "Старший разработчик 1С"#9 29.03.24 14:18
Нужно ометить что Погрешность всегда будет кратна услновным 0.01. И всегда за конечное число шагов будет раскидана по имебщимся коэфициентам. И Посколько она будет раскидываться минимально возможными порциями, причем не на максимальным суммам, а именно к суммам где расхождение с точной сумму максимальное это более правильно. И среднее отклоненние такого подхода к округлению должно дать хорошие результаты.

Но возможно если подумать еще немного найдется способа без массива в цикле N раз. что приведет к числу операций O(N^2) .
DevТестовая задача на вакансию "Старший разработчик 1С"#8 29.03.24 14:12
Вот так решена задача в типовой УТ10.3
Код
// Функция выполняет пропорциональное распределение суммы в соответствии
// с заданными коэффициентами распределения
//
// Параметры:
//  ИсхСумма   - распределяемая сумма
//  МассивКоэф - массив коэффициентов распределения
//  Точность   - точность округления при распределении. Необязателен.
//
//Возвращает:
//  МассивСумм - массив размерностью равный массиву коэффициентов, содержит
//               суммы в соответствии с весом коэффициента (из массива коэффициентов)
//               В случае если распределить не удалось (сумма = 0, кол-во коэф. = 0,
//               или суммарный вес коэф. = 0), тогда возвращается значение Неопределено
//
Функция РаспределитьПропорционально(Знач ИсхСумма, МассивКоэф, Знач Точность = 2, ПроверкаНулевыхЗначений=Истина) Экспорт

   Если МассивКоэф.Количество() = 0 Или (ПроверкаНулевыхЗначений И ИсхСумма = 0) Или ИсхСумма = Null Тогда
      Возврат Неопределено;
   КонецЕсли;
   
   ИндексМакс = 0;
   МаксЗнач   = 0;
   РаспрСумма = 0;
   СуммаКоэф  = 0;
   
   Для К = 0 По МассивКоэф.Количество() - 1 Цикл
      
      МодульЧисла = ?(МассивКоэф[К] > 0, МассивКоэф[К], - МассивКоэф[К]);
      
      Если МаксЗнач < МодульЧисла Тогда
         МаксЗнач = МодульЧисла;
         ИндексМакс = К;
      КонецЕсли;
      
      СуммаКоэф = СуммаКоэф + МассивКоэф[К];
      
   КонецЦикла;
   
   Если СуммаКоэф = 0 Тогда
      Возврат Неопределено;
   КонецЕсли;
   
   МассивСумм = Новый Массив(МассивКоэф.Количество());
   
   Для К = 0 По МассивКоэф.Количество() - 1 Цикл
      МассивСумм[К] = Окр(ИсхСумма * МассивКоэф[К] / СуммаКоэф, Точность, 1);
      РаспрСумма = РаспрСумма + МассивСумм[К];
   КонецЦикла;
   
   // Погрешности округления отнесем на коэффицент с максимальным весом
   Если Не РаспрСумма = ИсхСумма Тогда
      МассивСумм[ИндексМакс] = МассивСумм[ИндексМакс] + ИсхСумма - РаспрСумма;
   КонецЕсли;
   
   Возврат МассивСумм;

КонецФункции // РаспределитьПропорционально()



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

Я бы построил алгоритм так:
- находим минимум и максиум значений (-5 и +100).
- сдаивгаем все в плюс... чтобы не было значений ниже 0 (+5 делаем)
- в примере получаются числа от 0...105
- распределяем сумму с максимальной точностью (на выходе массив дробных чисел)
- копируем точный массив распределения суммы и округляем числа до необходимой точности
- считаем погрешность итоговую Погрешность = Сумма - Массив.
далее самое интересное... способ распределения погрешности
первое что приходит в голову
- докидывать к суммам можно только по 1 еденицы точности Например (0,01 = 1 копейка) для точности округляени 2.
- Шаг1. Находим максимальную разнциу округл. и точных коэф.
- Щаг2. Докидываем 0.01 к этому коэфициенту
- Щаг3. Погрешность уменьшилась на 0.01, проверяем если она не равно нулю повторяем шаг1.
Посло того как вся погрешность раскидана.. возвращаем смещение -5.
Готово.
ПубликацииАТОЛ ВЕБ-СЕРВИС 54ФЗ. Для работы с онлайн-кассами АТОЛ через веб-сервер (Ревизия 3004). Поддержка ФФД 1.2#81 10.12.23 6:50
(77) В Атоловской программе "Тест Драйвера ККТ" кнопка "Лицензии", далле "считать лицензии"
DevПрограммно очистить поиск (который по ctrl+f) в динамическом списке#7 27.11.23 3:50
(6) Спасибо, думаю это будет работать. (записал в копилочку знаний)

Но я все же решил отказаться от подхода который требовал програмное управление поиском в списке.
DevПрограммно очистить поиск (который по ctrl+f) в динамическом списке#5 24.11.23 2:41
2023 год по прежнему актуально, как решилась проблема ?
ПубликацииОсторожно: новый релиз#24 04.10.23 6:20
(20) Спасибо, работает.

Добавил в глобальный модуль, вот так:

Код
// Для работы 1С в 8.3 в режиме совместимости 8.2.16
// Исправл ошибку которая возникает при попытке открыть на редактирование в поле ввода значение типа СписокЗначений
Функция StrTemplate(ValueAddedMoreThanOnce, RightValue) Экспорт
   
   Возврат СтрШаблон(ValueAddedMoreThanOnce, RightValue);
   
КонецФункции


СтрШаблон() - функция видимо доступна в глобальном контексте и проблема только StrTemplate()

Прикрепленные файлы:

2023-10-04_121546.png
Торговля96 Отсутствует лицензия на работу с Web-сервером (Касса Атол)#14 05.04.23 2:32
(13) Да ККМ одна стоит.

Навскидку у вас не вышло ни одной обработки обслуживания торгового оборудования, а только решения которые нужно внедрять и допиливать. 4-я ссылка вообще для УФ, а у нас УТ10.3 она на обычных формах.

На за внимание к теме спасибо.