crontab: access denied

При попытке выполнения из под пользователя команды вида:

crontab -e

Получаю ошибку:

fdopen: Отказано в доступе

Простое решение (но не правильное): дать права 777 на папку /var/spool/cron/crontabs/:

chmod -c 777 /var/spool/cron/crontabs/

По идее как я понимаю пользователя нужно добавить в группу crontab, ну и уж точно не ставить 777 на папку. Но лень..

Astra Linux 1.8: глюки не ушли

Обновился с 1.7 до 1.8, путём полной переустановки, чтоб артефактов не подцепить. К сожалению ничего не изменилось.

  • меню пуск после выхода из блокировки экрана перестаёт работать. Ранее найденный вариант решения, работать тоже перестал. Помогло лишь переключение в «Классический» режим Пуск.
  • Окно терминала и редактор Kate тоже продолжают зависать

1С БСП 3.х : Добавление обработки в справочник «Дополнительные отчеты и обработки»

Ну собственно кому нужно подробнее, есть хорошая статья тут. Там функционал богатый и навороченый можно накрутить теперь. В моём случае для простой обработки хватило рыбы в модуле объекта вида:

Функция СведенияОВнешнейОбработке() Экспорт

	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("3.0.0.0");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Версия = "1.0";
	ПараметрыРегистрации.Наименование = "Формирование реестра СО";
	 ПараметрыРегистрации.Разрешения = Неопределено;
    
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
 
    // Добавляем команду
    Команда = ПараметрыРегистрации.Команды.Добавить();
    Команда.Представление = "Формирование реестра СО";
    Команда.Идентификатор = "ОткрытьНастройкиЗаполнения";
    
    // КРИТИЧЕСКИ ВАЖНО: Указываем тип команды - Открытие формы
    Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    Команда.ПоказыватьОповещение = Ложь;
 
    Возврат ПараметрыРегистрации;	

КонецФункции

И обязательно! Нужно поправить функцию ДополнительныеОтчетыИОбработкиПереопределяемый.ОпределитьРазделыСДополнительнымиОбработками, чтобы отображались все разделы. Я вынес в расширение вот такое, чтоб каждый раз руками не прописывать нужные подсистемы:

&После("ОпределитьРазделыСДополнительнымиОбработками")
Процедура Расш1_ОпределитьРазделыСДополнительнымиОбработками(Разделы)
	
	для каждого стр из Метаданные.Подсистемы цикл
		Разделы.Добавить(стр);
	конеццикла;	            	
    
КонецПроцедуры

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

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

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

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

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

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

Update 24/09/2026: и в самом деле ржака. Пришло другое, но тоже битое:

На этот раз был умнее, и вскрыл прямо в ПВЗ. Сразу же отказался….и заказал в 3 раз. Я упорный, посмотрим что придёт еще разик.

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

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

Решение:

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

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

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

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

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

Получаем:

1 2 3 … 324