Озон и возвраты через него

Угораздило меня пару недель назад разбить фонарь задний на машине. Посмотрел на WB, посмотрел на Ozon, посмотрел на Avito. Посмотрел в магазине для УАЗиков у себя в городе. Самые конские цены оказались в физическом магазине. В общем черт меня дернул заказать на замену светодиодные на Ozon.ru. Вот у этого продавца: https://www.ozon.ru/seller/uaz-vnedorozhnik-4h4/ В общем если кратенько, то пришло достаточно быстро. Моей ошибкой было то что не распаковал и не посмотрел состояние прямо на месте. Ну потому что коробка была не мятая, обернута сверху пленкой с пузырьками, оклеена сверху лентами «осторожно хрупкое». В общем приношу домой, распаковываю, и вижу:

Ну ладно думаю, ничего страшного, оформлю возврат продавцу и всё. Оформил, приложил фото. А в ответ прилетает отказ в возврате:

Хорошо появилась кнопка «Оспорить отказ в возврате» в приложении. Оспорил, и Озон возврат одобрил буквально через час. Побеседовал приватно с сотрудником ПВЗ, и она сказала что этот товар уже несколько раз прошел цикл клиент-возврат-клиент-возврат, потому что продавец не помечает этот товар как «сломанный, брак» и не забирает его (ну там видимо за это ему еще и денег нужно платить), и поэтому он в системе висит как «нормальный» и ходит по кругу, до тех пор пока кто-то не попадется менее «упорный» и не будет оформлять возврат.

Этого поста бы не было, если бы продавец повел себя добросовестно, и сразу одобрил возврат, добровольно. Ну и изъял бракованный товар из оборота. Потому как судя посему он опять ушел на склад ОЗОНа как «отличный товар».

P.S. Кстати ржака. Только я вчера наконец эту коробку всучил обратно на ПВЗ, как хобана! и другие фонари которые я заказал снова на замену и должны были придти 25 Сентября, оказались уже в пункте ПВЗ. Вот сильно посмеюсь, если окажется что это та-же коробка которую я вчера сдал. Отпишусь вечером по результату 🙂

1С: Динамическое количество колонок в макете

Задача: создать отчет с динамическим количеством колонок (за ранее не известным). Обычно подобные задачи решаются при помощи СКД, но я его традиционно недолюбливаю и использовать избегаю, по причине того, что спустя пару месяцев боле-менее сложны отчет превращается в абракадабру, которую чтобы понять приходится тратить очень много времени. Потому так.

Решение:

В макете поименовать не только как обычно горизонтальные области, но и вертикальные. Примерно так:

И области тогда получаем соответственно через тег |, примерно так (как в морском бое):

ОбластьШапка=Макет.ПолучитьОбласть("Шапка | Общая");		

Ну и сам код в конечном итоге сводится к такому:

	МесяцГод1=Макет.ПолучитьОбласть("Шапка | МесяцГод");	
	МесяцГод1.Параметры.ном=7;
		
	МесяцГод2=Макет.ПолучитьОбласть("Шапка | МесяцГод");	
	МесяцГод2.Параметры.ном=8;
	
	ТабДок.Вывести(ОбластьШапка);
	ТабДок.Присоединить(МесяцГод1);
	ТабДок.Присоединить(МесяцГод2);
	
	// заполняем тушку
	Тушка=Макет.ПолучитьОбласть("Тушка | Общая");				
	ТабДок.Вывести(Тушка);                              
	
		месгод=Макет.ПолучитьОбласть("Тушка | МесГод");				
		месгод.Параметры.месгод="Январь";
		ТабДок.Присоединить(месгод);
	
		месгод=Макет.ПолучитьОбласть("Тушка | МесГод");				
		месгод.Параметры.месгод="Февраль";
		ТабДок.Присоединить(месгод);
	
	возврат ТабДок;

Получаем:

Python: изолированная среда запуска скриптов

Иногда полезно бывает устанавливать пакеты при помощи pip не «для всех», а конкретно для какого то скрипта. Ну и кроме того разные скрипты могут требовать разных версий пакетов. Именно для реализации таких возможносетй и была придумана технология «виртуального окружения». По сути это папка внутри которой собраны пакеты необходимые для запуска основного скрипта.

Создание виртуального окружения:

python3 -m venv .venv

Переход в виртуальное окружение:

source .venv/bin/activate

Запуск скрипта без перехода в виртуальное окружение:

.venv/bin/python ppp.py

1С: Добавление функционала прикрепления файлов

Ранее уже была статья.. но 2020 года. Решил обновить чуток. На примере актуальной версии 1С Бухгалтерия (3.0.195.40), добавлю функционал по прикреплению файлов к документу СК_ИскВходящий

  1. Копируем любой справочник с наименованием содержащим на конце словосочетание «ПрисоединенныеФайлы» и переименовываем его в СК_ИскВходящийПрисоединенныеФайлы
  2. Меняем ТИП у реквизита «ВладелецФайла» справочника на «СК_ИскВходящий»
  3. Включаем в состав определяемых типов «ПрисоединенныйФайл» и «ПрисоединенныйФайлОбъект» справочник «СК_ИскВходящийПрисоединенныеФайлы».

4. Расширим состав определяемого типа «ВладелецПрисоединенныхФайлов» нашим документом (ДокументСсылка) «СК_ИскВходящий».

5. Расширим состав типов свойства «Источник» у подписки «ПереопределитьПолучаемуюФормуПрисоединенногоФайла», включив в него справочник «СК_ИскВходящийПрисоединенныеФайлы».

6. Расширим состав типов свойства «Источник» подписки УстановитьПометкуУдаленияПрисоединенныхФайловДокументов, включив в него наш новый документ «ДокументОбъект.СК_ИскВходящий».

7. Расширим состав общей команды «ПрисоединенныеФайлы» и «ПрисоединенныеФайлыБП», включив в него наш новый документ (ДокументСсылка.СК_ИскВходящий).

8. Если необходимо добавить «Скрепку» на форму списка (в типовом варианте должна добавиться автоматически), чтобы картинка значения появлялась при наличии прикрепленных файлов у документа (строка в списке), то выполняем следующие действия:

В форме списка, у реквизита «Список» имеющего тип «ДинамическийСписок» выставляем галку «ПроизвольныйЗапрос», после чего открываем настройку списка (в там же в свойствах) и добавляем в блок «Выбрать»:

НаличиеФайлов.ЕстьФайлы КАК ЕстьФайлы

а в блок «ИЗ» :

{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов
ПО НашНовыйДокумент.Ссылка = НаличиеФайлов.ОбъектСФайлами}

После того, как поправили запрос, в реквизитах списка появится «ЕстьФайлы». Перетаскиваем реквизит в табличное поле и указываем в свойствах:

  • Вид: «Поле картинки»;
  • Положение заголовка: «Нет»;
  • Картинка значений: «Файл»;
  • Картинка шапки: «Файл».

Update: Иногда людям не нравится когда появляется сверху вот это меню:

Убрать достаточно просто:

Bitrix+Aspro: ошибка открытия модальных окон на телефонах iphone

Симптомы: на всех устройствах кроме iphone модальные окна открываются корректно, по коду вида:

<a href="#" class="button button-high button-orange" data-event="jqm" data-param-id="22" data-name="zayavka_na_konservi">Заказать</a>

На айфонах же, по нажатию на кнопку, идёт переадресация на страницу обработки формы.

Решение:

А пока костыльное, т.к. причину пока так и не нашел. Исследование привело к general.js ядра bitrix, в котором идёт проверка вида:

if(window.matchMedia('(min-width:992px)').matches){
...
}

И на айфонах она не проходит никогда. Есть подозрение, что проблема в свойствах css. Пока пофиксил просто отключением этой проверки.

1 2 3 321