воскресенье, 19 января 2014 г.

Обработка заполнения инвентаризации товаров в "1С:Бухгалтерия 2.0" по счетам учета и субконто

В стандартном функционале программы 1С:Бухгалтерия 2.0 предусмотрена возможность заполнения документа "Инвентаризация товаров" по остаткам на складе.
Заполнение инвентаризации по остаткам на счете
Чтобы добавить возможность заполнять по счету бухгалтерского учета с отбором по субконто, я написала обработку "Заполнение инвентаризации по остаткам на счете". Обработку необходимо добавить в "Дополнительные внешние обработки табличных частей". Удобно использовать для заполнения по забалансовым счетам.
Скачать 

Как стать программистом 1С

На мой взгляд, чтобы стать программистом 1С, во-первых, нужны такие качества:
  • развитое умение логически мыслить;
  • хорошая память;
  • умение ладить с людьми (зачастую работа связана с общением с пользователями).
Далее необходимо изучить основы программирования. Я первые навыки программирования получила в школе. Нас учили программировать на pascal, решали задачи по циклам, массивам, матрицам и т.д. Сейчас некоторые отказываются от него, как от первого языка программирования в пользу Java, C/C++, PHP и т.д. Когда базовые понятия усвоены, необходимо познакомиться с объектно-ориентированным программированием. Советуют переходить на Borland Delphi, это тот же Паскаль, только там используется объектно-ориентированный подход.
Самые популярные специальности, где изучают программирование в институтах: "Прикладная информатика (по областям)", "Вычислительные машины, комплексы, системы и сети". Развить навыки программирования можно и без профильного высшего образования, но это потребует огромного уровня самодисциплины.
Теперь можно переходить к 1С. В некоторых ВУЗах преподают 1С. В моем не преподавали, так что я пошла на курсы "Введение в конфигурирование в системе "1С:Предприятие 8". Основные объекты". Лучше обратиться в центр обучения, сертифицированный фирмой 1С. Найти подходящие курсы можно на странице Расписание курсов 1С. Также неплохо бы прорешать учебник 1С:Предприятие 8.2. Практическое пособие разработчика. Примеры и типовые приемы.
Когда в голове осядут первые знания, нужно начать готовится к сдаче экзамена "1С:Профессионал по платформе" и устраиваться на работу. Я думаю, что нигде не наберешь столько опыта за короткий срок, как в фирме франчайзи 1С. Чем мельче франчайзи - тем больше опыта вы получите - в том числе и по предметным областям (специализация в таких фирмах как правило отсутствует). В крупной компании могут долгое время поручать доставку дисков ИТС и обновление типовых конфигураций. Но больше такие "специалисты" никому не нужны.
Еще один плюс франчайзи в том, что они обязательно будут побуждать вас сдавать сертификационные экзамены 1С. Когда сдадите 1С:Специалист по платформе - можете считать, что вы состоявшийся программист 1С.
Дальше - практика, освоение типовых конфигураций, и еще много чего. А главное - самосовершенствование, а оно как известно, бесконечно.

Как добавить / отредактировать контекстное меню табличного поля в 1С: Предприятие 8.2

К каждому табличному полю в среде 1С:Предприятие 8 можно привязать панель управления и добавить туда все нужные кнопки. Но бывает удобнее добавить их в контекстное меню (например места на форме мало). Сделать свое контекстное меню для табличного поля очень просто.
1 шаг.Добавить на форму элемент управления «Командная панель». Отключить у нее видимость.
Добавление панели управления
2 шаг.В свойствах табличного поля указать в свойстве «КонтекстноеМеню» созданную панель управления.
3 шаг.Если вы хотите, чтобы контекстное меню состояло только из ваших пунктов, в свойствах табличного поля отключите флаг «АвтоКонтекстноеМеню». Иначе новые пункты будут добавлены наверх автоматически заполненного контекстного меню.
4 шаг.Добавить ваши пункты меню, прописать к ним процедуры. Вот так выглядит контекстное меню.
Контекстное меню табличного поля

Генерация пароля в 1С:Предприятие

Простая функция - генератор пароля, состоящего из символов латинского алфавита нижнего и верхнего регистра и цифр

Функция СгенерироватьПароль(КоличествоСимволов)  Экспорт
 
 Пароль = "";
 ГСЧ = Новый ГенераторСлучайныхЧисел();

 Для ид = 1 по КоличествоСимволов Цикл
  Если ид%3 = 0 Тогда
    КодСимвола = ГСЧ.СлучайноеЧисло(97,122);
  ИначеЕсли ид%2 = 0 Тогда
    КодСимвола =  ГСЧ.СлучайноеЧисло(48,57);
  Иначе  
    КодСимвола =  ГСЧ.СлучайноеЧисло(65,90);
  КонецЕсли;
  Пароль = Пароль+Символ(КодСимвола); //
 КонецЦикла;
 
 Возврат Пароль;  
КонецФункции

Как завершить процесс ОЛЕ-экземпляры 1Сv8.exe, созданный через Application

Существует два способа подключения по OLE к другой базе 1С : COMConnector и Application. При подключении с помощью Application небходимо завершать работу приложения, например

ТекCOMОбъект.ЗавершитьРаботуСистемы();

Тем не менее столкнулась с ситуацией, когда процесс ОЛЕ-экземпляры 1Сv8.exe не завершается, висти, занимает оперативную память. Эта процедура предназначена для принудительного завершения всех процессов OLE 1Сv8.exe, запущенных под текущим пользователем.

Процедура ЗавершитьПроцесс()
   Шел=Новый COMObject("Shell.Explorer");
 ФСО=Новый COMObject("Scripting.FileSystemObject");
 Программа=ФСО.GetFile(Шел.fullname()).Name;
 Сеть        =    Новый COMОбъект("WScript.Network");
    Пользователь=    ВРег(Сеть.UserName);
 objWMIService = ПолучитьCOMОбъект("winmgmts:{impersonationLevel=impersonate}!\\" + ИмяКомпьютера() +"\root\cimv2");
    ProcessSet = objWMIService.ExecQuery("select * from win32_process where name='"+Программа+"' and commandline like '%-Embedding%'");
    Для Каждого Process Из ProcessSet Цикл
        User    = "";
        Domain    = "";
        
        Process.GetOwner(User, Domain);
        Если вРег(User) = Пользователь Тогда
             Process.Terminate();
      //Сообщить("Убиваем ОЛЕ "+Process.ProcessId);
        КонецЕсли;
     КонецЦикла;
 КонецПроцедуры