четверг, 1 декабря 2011 г.

Работа с датами и периодами

//функция проверяет, равен ли месяцу интервал между заданными датами 
Функция ЭтоМесяц(ДатаН,ДатаК) Экспорт
     Если Не(ДатаН=НачМесяца(ДатаН)) Тогда
          Возврат(0);
     ИначеЕсли Не(ДатаК=КонМесяца(ДатаК)) Тогда
          Возврат(0);
     ИначеЕсли ДатаН=НачМесяца(ДатаК) Тогда
          Возврат(1);
     Иначе
          Возврат(0);
     КонецЕсли;
КонецФункции
//функция возвращает количество полных месяцев между датами 
Функция гМесяцев(ДатаН,ДатаК) Экспорт
     Если ДатаН<ДатаК Тогда
          ТекДата=НачМесяца(ДатаН);
          Значение=1;
          Пока ТекДата<НачМесяца(ДатаК) Цикл
               ТекДата=ДобавитьМесяц(ТекДата,1);
               Значение=Значение+1;
          КонецЦикла;
          Возврат(Значение);
     Иначе
          Возврат(0);
     КонецЕсли;
КонецФункции
//функция определяет порядковый номер месяца в квартале
 Функция гМесяцКвартала(ДатаДок) Экспорт
     НачМесяц=ДатаМесяц(НачКвартала(ДатаДок));
     КонМесяц=ДатаМесяц(ДатаДок);
     Возврат(КонМесяц-НачМесяц+1);
КонецФункции
//функция определяет порядковый номер квартала по дате
 Функция гДатаКвартал(аДата) Экспорт
     Возврат ДатаМесяц(КонКвартала(аДата))/3;
КонецФункции

Взято с http://love1c.kiev.ua/code/global.htm#.Tte7ydXzwcs 


Как прибавить к дате день, месяц

СледующийДень = ТекущаяДата() + 60 * 60 * 24;
ДобавитьМесяц(Дата(2005, 1, 31), 1);
ДобавитьМесяц(Дата(2005, 2, 28), -1);
КонецМесяца(ДобавитьМесяц(Дата(2005, 2, 28), -1));

Функция ПолучитьДень(ИсходнаяДата, КоличествоПрибавляемыхДней)
    Запрос = НовыйЗапрос("
    |ВЫБРАТЬ
    |    ДОБАВИТЬКДАТЕ(&ИсходнаяДата, ДЕНЬ, &Количество) как Дата";
    Запрос.УстановитьПараметр("ИсходнаяДата", ИсходнаяДата);
    Запрос.УстановитьПараметр("Количество", КоличествоПрибавляемыхДней);
    ВозвратЗапрос.Выполнить().Выгрузить()[0].Дата;
КонецФункции 
 
 
http://www.about1c.ru/?prog77-functions-date

среда, 26 октября 2011 г.

Конструкция Выбор когда

ВЫБРАТЬ
    ДокументыПоКонтрагенту.Ссылка,
    СУММА(ВЫБОР
            КОГДА (НЕ СчетФактураВыданный.Ссылка ЕСТЬ NULL )
                ТОГДА СчетФактураВыданный.СуммаДокумента
           КОГДА (НЕ ПоступлениеТоваровУслугТовары.Ссылка ЕСТЬ NULL )
ТОГДА ПоступлениеТоваровУслугТовары.Сумма
            ИНАЧЕ 0
        КОНЕЦ) КАК СуммаДокумента
ИЗ
    КритерийОтбора.ДокументыПоКонтрагенту КАК ДокументыПоКонтрагенту
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК СчетФактураВыданный
        ПО ДокументыПоКонтрагенту.Ссылка = СчетФактураВыданный.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        ПО ДокументыПоКонтрагенту.Ссылка = ПоступлениеТоваровУслугТовары.Ссылка

СГРУППИРОВАТЬ ПО
    ДокументыПоКонтрагенту.Ссылка

четверг, 8 сентября 2011 г.

Обход запроса по группировкам, как собираются данные в запросе с конструкцией ИТОГИ ПО – 1С

Вопрос Обход запроса по группировкам, как собираются данные в запросе с конструкцией ИТОГИ ПО. Предположим, требуется организовать цикл, в котором должен формироваться массив заказов, в разрезе Контрагентов и Адреса доставки. Как это сделать?
Ответ Пишем запрос:
Запрос.Текст =
 "ВЫБРАТЬ
 | усЗаказНаОтгрузку.Ссылка КАК Ссылка,
 | усСтатусДокументов.Статус КАК Статус,
 | усЗаказНаОтгрузку.Контрагент КАК Контрагент,
 // Адрес доставки заключаем в "ВЫРАЗИТЬ", т.к. в метаданных Адрес Доставки - строка неограниченной длины и если ее не преобразовать в строку ограниченной длины,
 //то ее будет невозможно использовать в конструкции "ИТОГИ ПО"
 // и мы получим сообщение об ошибке вида "Недопустимое поле для группировки"
 | ВЫРАЗИТЬ(усЗаказНаОтгрузку.АдресДоставки КАК СТРОКА(350)) КАК АдресДоставки
 |ИЗ
 | РегистрСведений.усСтатусДокументов КАК усСтатусДокументов
 |  ЛЕВОЕ СОЕДИНЕНИЕ Документ.усЗаказНаОтгрузку КАК усЗаказНаОтгрузку
 |  ПО усСтатусДокументов.Документ = усЗаказНаОтгрузку.Ссылка
 |ГДЕ
 | усЗаказНаОтгрузку.Проведен
 |
 |УПОРЯДОЧИТЬ ПО
 | усСтатусДокументов.Статус.Порядок
 |ИТОГИ ПО
 | Контрагент,
 | АдресДоставки";
Результатом этого запроса будет набор данных примерно такого вида:
(Права на эту статью принадлежат сайту http://www.1c-h.ru) Контрагент 1
  • АдресДоставки1
  • заказ 1
  • заказ 2
  • заказ 3
Контрагент 1
  • АдресДоставки2
  • заказ 4
  • заказ 5
Контрагент2
  • АдресДоставки3
  • заказ 6
Теперь нам нужно получить три массива:
- заказ 1, заказ 2, заказ 3
- заказ 4, заказ 5
- заказ 6
Для получения этих массивов требуется организовать обход приведенного выше запроса «По группировкам с иерархией»:
СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией;
Результат = Запрос.Выполнить();
ВыборкаПервогоУровня = Результат.Выбрать(СпособВыборки);
Пока ВыборкаПервогоУровня.Следующий() Цикл // внутри каждого уровня иерархии заказы упорядочены: "Создан", "В работу", "Ведутся работы", "Готов к отгрузке" (именно в таком порядке, порядок установлен в перечислении)
 ВыборкаВторогоУровня = ВыборкаПервогоУровня.Выбрать(СпособВыборки);
 мсвЗаказов.Очистить(); // очистили перед добавлением первого в список
 Пока ВыборкаВторогоУровня.Следующий() Цикл // внутри каждого уровня иерархии заказы упорядочены: "Создан", "В работу", "Ведутся работы", "Готов к отгрузке" (именно в таком порядке, порядок установлен в перечислении)
  ВыборкаТретьегоУровня = ВыборкаВторогоУровня.Выбрать(ОбходРезультатаЗапроса.Прямой); // параметр можно не передавать, по умолчанию способ выборки прямой
  Пока ВыборкаТретьегоУровня.Следующий() Цикл // внутри каждого уровня иерархии заказы упорядочены: "Создан", "В работу", "Ведутся работы", "Готов к отгрузке" (именно в таком порядке, порядок установлен в перечислении)
  мсвЗаказов.Добавить(ВыборкаТретьегоУровня.Ссылка);
  КонецЦикла;
  СформироватьОтборПоЗаказу(мсвЗаказов); // тут мы по очереди получим в цикле требуемые массивы: [заказ 1, заказ 2, заказ 3], затем [заказ 4, заказ 5] и [заказ 6]
 КонецЦикла;
КонецЦикла;
Примечание. Конструкция «УПОРЯДОЧИТЬ ПО усСтатусДокументов.Статус.Порядок» будет срабатывать внутри каждого массива, т.е. заказы будут упорядочены по статусу в каждом из полученных массивов.

пятница, 29 июля 2011 г.

Хранилище 1С

Оригинал взят с http://infostart.ru/public/63841/

Заметка про Хранилище конфигурации 1С:8.х

 "Неочевидные" и "невероятные" методики для чайников :)
Пара общих строк. Зачем это нужно?
- Если Вам надоело выгонять пользователей для того, чтоб внести изменение в конфигурацию..
- Если Вы хотите видеть, что, как и кем менялось в конфигурации с течением времени..
- Если Вы хотите иметь представление об объемах работы по изменению конфигурации каждого конкретного программиста (к сожалению, внешние обработки и отчеты туда не поместишь)
- Если над изменениями конфигурации работает несколько программистов и Вы хотите избежать ситуации, когда один из них перезатирает работу другого..
- Если нужно организовать слаженную работу географически удаленных разработчиков..
- Если Вы хотите иметь возможность откатить отдельные изменения отдельных объектов конфигурации, например, после неудачной правки или после неудачного обновления (неприятная ситуация, когда проморгали какие либо перезатертые обновлением нужные Вам изменения конфигурации.. порой даже и не вспомнить, что именно)..
.. то Вам может помочь организация работы с использованием Хранилища.
В мире "большого" программирования т.н. Конфигурационное управление используется очень давно и многие проекты, представленные в каталогах бесплатного ПО, просто не смогло бы появится без использования данного подхода. И в мире 1С это так-же не могло не возникнуть, учитывая возрастающую сложность конфигураций и необходимость их групповой разработки и поддержки.
Итак.. Создание Хранилища.
В режиме Конфигуратора, в меню Конфигурация/Хранилище конфигурации выберем Создать хранилище... , укажем каталог хранилища, пользователя/пароль (не связано с пользователями БД) и выгрузим ТЕКУЩЕЕ состояние конфигурации в него..
Что нужно сделать дополнительно: Даже если Вы планируете работать с Хранилищем в одиночку - сразу после создания создайте ЕЩЕ одного пользователя хранилища с административными правами и одного с параметрами по умолчанию - пункт Администрирование хранилища в том же меню.
Зачем: бывают случаи, когда пользователь "зависает" в Хранилище - и войти в него невозможно. Тогда будет возможность зайти под вторым логином и "снять" зависшего пользователя (т.е. себя же) - после чего можно продолжить работу в обычном порядке. Пользователь с обычными правами нужен для повседневной работы..
У нас есть хранилище. И наша текущая (как правило - рабочая) БД к нему уже подключена. Причем под именем того пользователя, от имени которого Хранилище было создано..
Неочевидный аспект: имейте ввиду, что теперь этот пользователь будет "закреплен" за Рабочей БД, от имени другого пользователя, открыв рабочую БД в конфигураторе, соединится с Хранилищем не удастся!
Как вести разработку:
- Для (каждого) программиста (обычно, локально, на его компьютере) создается пустая БД. Из основной БД делается выгрузка с данными (если она не сильно объемная - файл *.dt) или выгружается просто конфигурация (если БД сильно большая - файл *.cf). - В созданную локально базу заружают копии основной БД (можно без этого обойтись, но так быстрее, чем.. "не так" - этот пункт отсутствует в документации, по стандарту, его можно пропустить).
- Теперь нужно соединить нашу локальную БД с Хранилищем - выберем в том же меню, что упоминалось выше, пункт Подключиться к хранилищу.. , где укажем путь/адрес хранилища, пользователя с "обычными" правами (если программистов много - то для каждого должна быть заведена его учетная запись в Хранилище) и жмем OK.Происходит сравнение конфигурации Хранилища и Вашей локальной копии и подключение к Хранилищу.
ПРИ ЭТОМ ЕСЛИ ЕСТЬ РАЗНИЦА - ВАША ЛОКАЛЬНАЯ КОНФИГУРАЦИЯ БУДЕТ ЗАТЕРТА КОНФИГУРАЦИЕЙ ХРАНИЛИЩА
Данные локальной БД, при этом, останутся целыми.. можете считать, что произошло Объединение конфигураций с приоритетом конфигурации Хранилища.
"Неочевидное": а что делать если мы уже вели разработку в локальной БД? Как сохранить все "нажитое непосильным трудом"??
"Невероятное": выход есть. ПЕРЕД тем, как соединить локальную БД с Хранилищем, СДЕЛАЕМ ВЫГРУЗКУ локальной конфигурации в файл *.cf
После этого свяжем БД с Хранилищем и затрем свои изменения. Затем выполним операцию Захватить в хранилище.. (рекурсивно, если мы одни и никто не работает над изменением объектов) над корневым элементом в дереве Конфигурации.
После этого объединим локальную конфигурацию с конфигурацией из файла с приоритетом последнего и отправим все НАШИ ИЗМЕНЕНИЯ в Хранилище (операция Поместить в хранилище..).
Все в порядке. Оттуда эти наши изменения можно отправлять в основную БД!
Если программистов много - то изменения каждого нужно отправлять в Хранилище поочереди, ПРЕДВАРИТЕЛЬНО выгрузив у всех работу во внешние файлы с конфигурацией локальной БД и (если объединение делается с разных рабочих мест), не забывая перед каждым объединением ОБНОВЛЯТЬ локальные БД из Хранилища - до последней версии, с присутствующим там изменениями ранее подключенных товарищей не забывая перед каждым объединением выполнять РЕКУРСИВНЫЙ захват корневого элемента конфигурации, в ходе которого в т.ч. происходит обновление конфигурации из Хранилища до последней версии.. А после каждого объединения выпонять РЕКУРСИВНЫЙ возврат корневого элемента для обновления конфигурации в Хранилище.
А теперь можно начинать продуктивную работу..
====
***

..
В работе хранилища действительно очень много неочевидных вещей, поэтому мои дополнения:
1. Если работают несколько программистов, то как вариант,
рабочий день обычно начинается со следущего:
запускаем свою базу в конфигураторе, на корне конфигурации правой кнопкой мышки - получить из хранилища, включаем галочку "рекурсивно", жмем ОК. После этого в конфигурацию получаем все, что наработали другие из хранилища. САМУ БД НЕ ОБНОВЛЯЕМ!!!
Далее желаем "сравнить конфигурацию с конфигурацией БД" - и видим список все изменений сделанных другими программистами группы за предыдущий день. Если есть вопросы по изменениям- обращаемся к тому, кто их делал.
После того, как все разобрали - сохраняем в БД.
Почему не сравнить с конфигурацией хранилища - во-первых чтобы не показывались те объекты, над которым сам работаешь, во-вторых это работает быстрее.
2. В середине дня: срочные изменения (для динамического обновления) отправляем в хранилище сразу. Не срочные - после того, как изменим все связанные объекты. (см. пояснение ниже)
3. В конце дня (а если надо делать полное обновление базы - то перед ним) сдаем в хранилище все что можно.
Это не обязательный порядок, но весьма удобный.

4. Почему не помещаем сразу:
потому что целостность изменений контролируется 1С только там где есть ссылка. То есть если например вы сделали справочник "Автомобили клиентов" и добавили ссылку на него в "расходную накладную", то поместить "Расходную накладную" в хранилище Вы сможете только после (или одновременно) со справочником "Автомобили клиентов". Но если Вы например использовали этот справочник в процедуре общего модуле, которая вызывается при проведении расходной накладной, то этот общий модуль в хранилище спокойно поместиться без помещения справочника. Если после этого другой программист получит этот модуль из хранилища, то в его базе расходные накладные проводиться перестанут. (А если обновить основную базу - то и там перестанут).
И то еще хороший случай - так как возникает просто ошибка. А вот если Вы например изменили тип реквизита в документе со строки на текст и в процедуре общего модуля была проверка Если Реквизит = "1" а стала Если Реквизит = 1 и модуль в хранилище поместили а документ - нет, то ошибки не будет (привет отсутствию контроля типов), а значит у тех кто такой модуль получит документы будет неправильно проводиться, (и хорошо если это будет не основная база). Поэтому изменения лучше сдавать в хранилище "полным пакетом" (все измененные по одной теме объекты), если что-то нужно Вам для другой задачи - можно сразу же захватить по новой или просто, помещая в хранилище, "оставить захваченным".

В этом плане я не совсем понял:
Цитата
Если программистов много - то изменения каждого нужно отправлять в Хранилище поочереди, ПРЕДВАРИТЕЛЬНО выгрузив у всех работу во внешние файлы с конфигурацией локальной БД и (если объединение делается с разных рабочих мест), не забывая перед каждым объединением ОБНОВЛЯТЬ локальные БД из Хранилища - до последней версии, с присутствующим там изменениями ранее подключенных товарищей..

Странно, не было никаких проблем когда несколько человек сразу изменения помещали, разве что подтормаживало малость. На то захват объектов и предусмотрен, чтобы 2 человека сразу одно и то же не исправили. Причем было замечено, что: если 1 разработчик изменил документ, скажем "Авансовый отчет", а затем второй "получения" не делал, а сразу его захватывает (например, объект только что помещен в хранилище), то 1С это отследит и сама даст ему уже новую - измененную версию. (Так прикольно бывает - смотришь на документ - 5 реквизитов, захватываешь - уже 15).

И зачем работу во внешние файлы выгружать тоже не понял.

4. Создание копий базы для программистов проще делать не 1Совской загрузкой-выгрузкой (т.к. она требует монопольного режима и не шибко шустрая), а восстановлением скульного бекапа или просто копированием базе на скуле.

5. Если нужно добавить новый объект (документ, справочник и пр), то захватите корень конфигурации, добавьте его, добавьте минимум реквизитов (совсем "пустые" объекты не всегда сохраняется), сдайте корень в хранилище (этот объект тоже сдастся при этом) и заберите объект опять. (Чтобы не держать корень долго захваченным - он и другим нужен).

6. Если Вы хотите исправить права доступа на объект, захватили его - а права доступа по прежнему недоступны - захватите соответствующую роль.

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

8. Когда делаем "получить все из хранилища" (п. 1) бывает, что 1с выдает кучу сообщений а потом пишет, что "не удалось" (список объектов при этом меняется). Значит давно не получали изменения. Ничего страшного, жмем ОК по новой и так до тех пор, пока не сработает, как надо.

9. Иногда 1С отказывается сохранять полученные из хранилища изменения, причем сообщение выдает абсолютно невнятное. Виновниками обычно являются "регистры сведений". Выясняем, у какого регистра сведений менялась структура, удаляем из него в своей базе все записи, после этого все обновится как надо.

10. Поскольку рабочие базы делаются из основной, то названия конфигураций совпадают и их легко перепутать и потом начинаются непонятки, когда пользователе говорит что у него в отчете 100 руб, а у Вас - 100,000 руб. Как вариант, добавляем в модуль приложения строчку, проверяющую при запуске программы что это за база и если не основная - выводящую это в заголовке программы 1С (например "РАБОЧАЯ БАЗА ПРОГРАММИСТА ИВАНОВА")

11. Когда база подключена к хранилищу, но при запуске не удалось к нему подключиться по любым причинам, то может выдаться сообщение "Не удалось подключиться, выполнить отключение от хранилища" (а у Вас есть захваченные объекты) - тут ОТВЕЧАЙТЕ "НЕТ". Но если случайно ответить "да" то - не пытайтесь подключиться по новой!!! Сначала сохраните конфигурацию в файл!!! Так как когда подключаемся к хранилищу, то вся конфигурация базы заменяется на конфигурацию хранилища. После этого загружаем изменения из сохраненного файла и работаем дальше.

вторник, 19 апреля 2011 г.

mac os and mustek

http://forum.onliner.by/printview.php?t=626238&start=0&rpls=12&sid=54fe6e37537e53a858c2eb176f540b81

http://www.ellert.se/twain-sane/
http://www.meier-geinitz.de/sane/gt68xx-backend/

вторник, 15 марта 2011 г.

Инструкция по заправке картриджей Canon PIXMA IP2700

Внимание!!! Пустой картридж должен быть перезаправлен немедленно. Длительные простои принтера с пустыми картриджами приводят к засыханию черти в печатающей головке.
1. Откройте крышку принтера и извлеките из него картриджи. Снимите наклейки с верхней крышки картриджей (фото 1).
Инструкция по заправке картриджей Canon PIXMA IP2700
2. При помощи сверла аккуратно рассверлите вентиляционные отверстия картриджей (фото 2), чтобы впоследствии через эти отверстия могла войти игла шприца с чернилами. Постарайтесь, чтобы сверло глубоко не входило в картридж. При выполнении всех операций будьте осторожны, не упирайте картриджи нижней частью о твердые поверхности и не повредите сопловую пластину головки и электрические части.
Инструкция по заправке картриджей Canon PIXMA IP2700
3. Наберите в шприц с острой иглой подходящих чернил, опустите иглу в соответствующее отверстие как можно глубже и медленно нажимайте на поршень шприца до тех пор. пока в отверстии не покажутся чернила, откачайте около 0,5 мл чернил обратно в шприц и прекратите заправку. Излишнее наполнение картриджей (особенно черного) может привести к образованию чернильных капель на нижней части картриджа, при этом принтер будет мазать бумагу. Аналогично заправьте все цвета, установите наклейки на место.
4. После заправки аккуратно промокните салфеткой сопловые пластины картриджей, убедитесь, что на электрических платах нет чернил, и в случае необходимости протрите их сухой салфеткой.
5. Установите картриджи в посадочные места принтера и плотно прижмите их вперед до полной посадки, согласно инструкции по замене картриджей вашего принтера. Закройте прижимную крышку картриджей и крышку принтера.
6. Дайте команду проверки работы дюз (утилита драйвера принтера) и. при необходимости, команду прочистки головки.
7. При использовании заправленных картриджей на экране монитора появится предупреждение. что картриджи пусты (рис. 1). Принтер подсчитывает расход чернил программно и не знает реального наполнения картриджей. Для продолжения печати вам необходимо отключить слежение принтера за уровнем чернил. Для этого нужно нажать кнопку "Стоп/Сброс" на панели принтера примерно на 10 секунд. Принтер перестанет отслеживать уровень чернил в картриджах (для каждого цвета необходимо отключить слежение отдельно).
Инструкция по заправке картриджей Canon PIXMA IP2700
Нормы заправки чернил и средняя скорость вливания чернил в картридж:
PG-510 - 8 ml. - 30 секунд
PG-512 - 10 ml. - 35 секунд
CL-511 - 3 ml. каждого цвета - 20 секунд
CL-513 - 4 ml. каждого цвета - 20 секунд

Заправка кардриджей для hp1000

Внимание!!! Пустой картридж должен быть перезаправлен немедленно. Заправка картриджа, который хранился пустым долгое время, является бесполезной тратой времени и средств.

Примечание: Перед тем, как приступить к заправке картриджа следует влажной салфеткой, смоченной в очищающей жидкости мягко очистить внешнюю сторону печатающей головки, т.е.сопловую пластину.

 

1. Установите картридж на салфетку печатающей головкой вниз.
2. Аккуратно удалите наклейку с крышки картриджа.
3. Установите на шприц заправочную иглу и наберите нужное количество чернил.(10мл для чёрного картриджа и по 3мл для каждого цвета в цветном)
4. Осторожно протолкните иглу поглубже внутрь заправочного отверстия того цвета, который будет заправляться. Картридж содержит губку-наполнитель, поэтому возможно небольшое сопротивление при проталкивании иглы.

Инструкция по заправке картриджа HP СС564he №122xl цветной водный
5. Медленно вводите чернила в картридж до тех пор, пока избыток чернил не появиться в заправочном отверстии. Промывайте заправочную иглу дистиллированной водой и сушите ее перед заправкой другим цветом.

Внимание! Картриджи НР №122 Black отличаются предварительной камерой (обозначена красным прямоугольником на фото ) увеличенного размера. Новый предварительный фильтр, разделяющий эту камеру и резервуар с наполнителем, в пустом картридже легко завоздушивается и не пропускает заправленные чернила к печатающей головке. Испытания показали, что стандартная методика заправки черными пигментными или водорастворимыми чернилами (независимо от производителя) часто приводит к сбоям в работе заправленного картриджа.

В качестве решения для успешного применения совместимых чернил в картриджах НР №122 Black рекомендуем сразу после заправки картриджа проколоть предварительный фильтр тонкой иглой шприца (смотрите фото ) и «заправить» камеру чернилами. Во избежание повреждения сопловой пластины не опускайте иглу глубже, чем это показано на фото.
После прокола предварительного фильтра чернила смогут свободно поступать к печатающей головке.
Инструкция по заправке картриджа HP СС564he №122xl цветной водный
6. Промокните остатки чернил вокруг заправочного отверстия, во избежание смешивания разных чернил.
7. Заклейте верхнюю часть картриджа липкой лентой так, чтобы все отверстия были герметично закрыты.
8. Проколите иглой липкую ленту над заправочными отверстиями.
9. Очистите печатающую головку и контактную пластину картриджа сухой салфеткой.
10. Установите картридж в принтер и проведите первичный цикл проверки согласно инструкции по обслуживанию принтера.

Открытие свойств сервера печати

Команда rundll32.exe printui.dll PrintUIEntry /s /t1 (открыт на вкладке Порты). При помощи дополнительной опции /с«компьютер» можно отобразить диалог Свойства: Сервер печати удаленного компьютера.

Удаленный сеанс отключен из-за отсутствия доступных лицензий клиента сервера терминалов для этого компьютера

1. На машине, с которой хотим подключиться, заходим в реестр (Пуск -> Выполнить -> Regedit)
2. Далее двигаемся по ветке реестра HKEY_LOCAL_MACHINE -> Software -> Microsoft -> MSLicensing
3 На последней папке (MSLicensing) нажимаем правой клавишей мышки -> Удалить.

Витая пара

Полное описание порядка действий при обжиме.
Использование телефонного кабеля.
Обжим одного кабеля на две сетевых.
И прочие тонкости:

http://www.overclockers.ru/articles/lan/index.shtml?page2

обжим 4-х жильного телефонного кабеля: http://www.elstav.narod.ru/articles/lan/connector.htm