Все записи автора Павел Грибов

Boulder Dash в консоли..

Дождались! Теперь в культовый Boulder Dash можно поиграть на сервере в консоли SSH. Что для этого сделать?

1. Скачать исходники здесь: https://sourceforge.net/projects/ascii-dash/files/
2. Распаковать. Заменить файл sounds.cpp, моим «патченным». Патч отключает использование звуковой карты (какая на сервере может быть звуковая карта??)
3. Скомпилировать согласно иструкции из readme.txt

Наслаждайтесь…

 

Windows со встроенным SSH клиентом

Сегодня стало для меня открытием, что Windows 10 содержит в «базе» SSH и Telnet клиенты. С одним нюансом — подключается к удаленным серверам с кодировкой локали cp1251. Соответственно, чтобы полноценно работать на удаленном клиенте, нужно поставить локаль ru_RU.cp1251, при помощи:

apt-get install locales
dpkg-reconfigure locales

Выбрать помимо en_US.UTF8, еще и ru_RU.cp1251

Определение длины строки в запросе 1С

Как извесно боль запросов 1С, в невозможности «штатно» определить длину строки в запросе. Вот один из обходных «велосипедов»:

&НаСервере
Процедура ПроанализироватьНаСервере(имя)	
		
	
	ТекстДерево = Дерево("ацукацукацук.Поле_1_1", -1, 300); 
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ ПЕРВЫЕ 1
		|    " + ТекстДерево + " КАК Длина
		|ИЗ
		|	РегистрСведений.ацукацукацук КАК ацукацукацук
		|УПОРЯДОЧИТЬ ПО
    	|    Длина УБЫВ";
		
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		сообщить(ВыборкаДетальныеЗаписи.Длина);
	КонецЦикла;	


КонецПроцедуры

&НаСервере
Функция Дерево(Реквизит, Начало, Конец) Экспорт
    Если Начало + 1 = Конец Тогда
        Возврат Строка(Конец);
    КонецЕсли;
    Середина = Начало + Цел((Конец - Начало) / 2);
    СтрокаДерево = "ВЫБОР КОГДА ПОДСТРОКА(" + Реквизит + ", " + (Середина + 1) + ", 3) = """" ТОГДА " 
        + Дерево(Реквизит, Начало, Середина) + " ИНАЧЕ " + Дерево(Реквизит, Середина, Конец) + " КОНЕЦ";
    Возврат СтрокаДерево;
КонецФункции

1С: Выделение цветом ячеек в таблице значений на форме

Задача: раскрасить ячейки в ТЗ на форме в зависимости от условий.

Решение: будем использовать условное оформление, которое назначается перед выводом формы на экран. Например в процедуре «ПриСозданииНаСервере»

	ЭлементОформления = УсловноеОформление.Элементы.Добавить();	 
	Оформление  = УсловноеОформление.Элементы.Добавить();
 	Оформление.Использование = Истина;
	 Поле1 = Оформление.Поля.Элементы.Добавить();
	 Поле1.Поле = Новый ПолеКомпоновкиДанных("тчСумма");
	 Отбор = Оформление.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	 Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.тч.СуммаПениНачисленная");
	 Отбор.ПравоеЗначение = 0;
	 Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
	 Отбор.Использование = Истина;
	 Оформление.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Аквамарин);