Учебник по 1С

         

Форма списка справочника


Для удобства работы пользователей со справочником на этапе конфигурирования можно создать несколько видов экранных форм для показа справочника. В зависимости от контекста вызова справочника можно задать использование определенного диалога для работы с ним.

Лучше один раз увидеть, чем сто раз услышать, поэтому ниже для примера приведена форма списка справочника Сотрудники:



ФОРМЫ


Элементы диалога

Слои и закладки

Подбор

- Мне тут 1С какое-то окошко открыл и предлагает сохраниться. Соглашаться?

- Не сразу! А то какой ты авторитет!



Функции в запросе


Этот запрос совершает очень полезную работу: он подсчитывает, сколько сотрудников работает по каждой должности. Другие возможные функции приведены в Синтакс-помощнике.

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса = "

|Долж = Справочник.Сотрудники.Должность;



|Группировка Долж упорядочить по Долж.Наименование;

|Функция Колво = Счётчик();

|";

Запрос.Выполнить(ТекстЗапроса);

Пока Запрос.Группировка("Долж")=1 Цикл

...Сообщить("По должности " + Строка(Запрос.Долж) +

.............." работает " + Строка(Запрос.Колво) + " чел.");

КонецЦикла;



Glaz


Слушай, хороший красивый учебник!

Дополняй его каждым объектом, а не только регистрами и будет ваще куууул!



Глобальный модуль


В системе 1С есть так называемый Глобальный модуль.Он относится к конфигурации в целом. Глобальный модуль нужен для того, что писать процедуры и функции, доступные в любом месте программы (в любом другом модуле). Для этого необходимо просто указать ключевое слово Экспорт. Также можно создать глобальные переменные, которыми можно будет пользоваться в любом месте программы. Но чем меньше будет таких глобальных переменных, тем лучше, так как модули получаются более независимыми друг от друга, что снижает количество ошибок в программе и облегчает отладку.

Открытие формы
Новый русский звонит своему братану и говорит:

u="u045.09.spylog.com";d=document;nv=navigator;na=nv.appName;p=0;j="N"; d.cookie="b=b";c=0;bv=Math.round(parseFloat(nv.appVersion)*100); if (d.cookie) c=1;n=(na.substring(0,2)=="Mi")?0:1;rn=Math.random(); z="p="+p+"&rn="+rn+"&c="+c;if (self!=top) {fr=1;} else {fr=0;} sl="1.0";

pl="";sl="1.1";j = (navigator.javaEnabled()?"Y":"N");

sl="1.2";s=screen;px=(n==0)?s.colorDepth:s.pixelDepth; z+="&wh="+s.width+'x'+s.height+"&px="+px;

sl="1.3"

y="";y+=""; y+="

"; y+=""; d.write(y); if(!n) { d.write("

hotlog_js="1.0";hotlog_d=document; hotlog_n=navigator;hotlog_rn=Math.random(); hotlog_n_n=(hotlog_n.appName.substring(0,3)=="Mic")?0:1 hotlog_r=""+hotlog_rn+"&s=2871&r="+escape(hotlog_d.referrer)+"&pg="+ escape(window.location.href) hotlog_d.cookie="hotlog=1"; hotlog_r+="&c="+(hotlog_d.cookie?"Y":"N"); hotlog_d.cookie="hotlog=1; expires=Thu, 01-Jan-70 00:00:01 GMT"

hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N")

hotlog_js="1.2";hotlog_s=screen; hotlog_r+="&wh="+hotlog_s.width+'x'+hotlog_s.height+"&px="+((hotlog_n_n==0)? hotlog_s.colorDepth:hotlog_s.pixelDepth)

hotlog_js="1.3"

hotlog_r+="&js="+hotlog_js; hotlog_d.write("

")



Группировка и сортировка


Практически в любом запросе есть ключевое слово Группировка. Оно означает, что нужно выбрать из таблицы только те записи, у которых значение определенного поля различается. Этот запрос выберет из справочника Сотрудники список используемых должностей и отсортирует этот список по алфавиту.

Запрос = СоздатьОбъект("Запрос");

ТекстЗапроса = "

|Долж = Справочник.Сотрудники.Должность;

|Группировка Долж упорядочить по Долж.Наименование;

|";

Запрос.Выполнить(ТекстЗапроса);

Пока Запрос.Группировка("Долж")=1 Цикл

............Сообщить(Запрос.Долж);

КонецЦикла;



Группы расчетов


Для того чтобы при тех или иных расчетах можно было оперировать не только результатами расчетов по конкретным видам, но и результатами по нескольким видам расчетов, объединенных по определенному принципу, служит понятие групп расчетов. Примерами групп расчета могут служить: «начисления, облагаемые подоходным налогом», «начисления, входящие в расчет средней зарплаты», «все удержания» и другие.



Иерархические справочники


Список элементов справочника в системе 1С:Предприятие может быть многоуровневым. В этом случае все строки справочника будут разделяться на 2 вида: «просто» элементы справочника и группы справочника. Группы позволяют переходить на нижележащие уровни многоуровневого справочника. Использование многоуровневых справочников позволяет организовать ввод информации в справочник с нужной степенью детализации. Элементы и группы элементов в многоуровневом справочнике можно переносить из одной группы в другую.



Игра "Охота на лис" (пример)


Объекты конфигурации

Технические подробности

Домашнее задание

Что можно скачать



Игра "Реверси" (пример)


Постановка задачи
Взрослые отличаются от детей только ценой своих игрушек.

Объекты конфигурации

Технические подробности

Домашнее задание

Что можно скачать



Информация о текущем элементе


Если справочник многоуровневый, то будет полезным применение следующих методов и атрибутов, которые позволяют получить информацию о текущем элементе справочника:

Постановка задачи
Вся наша жизнь - игра.

Этот метод возвращает уровень текущего элемента. Например, для сотрудника, который находится в группе Работающие, мы получим число 2.

Пример, вывод иерархического справочника в виде дерева:

СпрСотр = СоздатьОбъект("Справочник.Сотрудники");

СпрСотр.ВыбратьЭлементы();

Пока СпрСотр.ПолучитьЭлементы()=1 Цикл

//вывести отступ в соответствии с глубиной вложенности элемента

Для Ном=1 По СпрСотр.Уровень() Цикл

.....Сообщить(".....");

КонецЦикла;

Сообщить(СпрСотр.Наименование);

КонецЦикла;

Пример, вывод сотрудников (группы не выводятся):

СпрСотр = СоздатьОбъект("Справочник.Сотрудники");

СпрСотр.ВыбратьЭлементы();

Пока СпрСотр.ПолучитьЭлементы()=1 Цикл

Если СпрСотр.ЭтоГруппа()=1 Тогда

......Продолжить; //группы пропускаем, перейти в начало цикла

КонецЕсли;

Сообщить(СпрСотр.Наименование);

КонецЦикла;

Возвращает: 1 - если элемент принадлежит указанной группе , 0 - если нет.

Пример, вывод товаров, принадлежащих к группе Спиртное, независимо от того входят ли они в подгруппы Шампанское, Пиво, Водка, Вино и т.д.:

СпрТовары = СоздатьОбъект("Справочник.Товары");

СпрТовары.ВыбратьЭлементы();

Пока СпрТовары.ПолучитьЭлементы()=1 Цикл

Если СпрТовары.ПринадлежитГруппе(грпСпиртное)=1 Тогда

.....Сообщить(СпрТовары.Наименование);

КонецЕсли;

КонецЦикла;

Этот атрибут содержит родителя текущего элемента справочника, т.е. группу, в которой находится текущий элемент. Доступен для чтения и записи.

Пример, перенос всех товаров из группы Спиртное в группу Распродажа:


СпрТовары = СоздатьОбъект("Справочник.Товары");

СпрТовары.ВыбратьЭлементы();

Пока СпрТовары.ПолучитьЭлементы()=1 Цикл

Если СпрТовары.ПринадлежитГруппе(грпСпиртное)=1 Тогда

.....СпрСотр.Родитель = грпРаспродажа;

.....СпрСотр.Записать();

КонецЕсли;

КонецЦикла;

А можно сделать красивее и перенести всю группу Спиртное в группу Распродажа, тогда все подгруппы и элементы также перенесутся в группу Распродажа.

СпрТовары = СоздатьОбъект("Справочник.Товары");

СпрТовары.НайтиЭлемент(грпСпиртное);

СпрТовары.Родитель = грпРаспродажа;

СпрТовары.Записать();

Возвращает строку, содержащую полный код выбранного элемента справочника со всеми вышестоящими уровнями, разделенными символом "/".

Например, "2/7/123"

Возвращает строку, содержащую полное наименование выбранного элемента справочника со всеми вышестоящими уровнями, разделенными символом "/".

Например, "Спиртное/Шампанское/Советское"


История фирмы 1С


Основателями и владельцами компании 1С являются два брата Борис и Сергей Нуралиевы. Борис раньше работал в системе ЦСУ СССР. В середине 80-х годов он возглавил отдел, занимавшийся разработкой программы, позволявшей извлекать информацию из огромных баз данных ЦСУ с помощью запросов на некотором псевдоестетственном языке. Система была создана, а затем адаптирована для персональных компьютеров. Причем гарантировалось, что система дает ответ на заданный вопрос не более чем за одну секунду, поэтому и была названа "1С", а точнее "1С система информационного обслуживания". Эта программа была востребована более чем сотней предприятий для построения телекоммуникационных коммерческих сетей. Позднее по имени системы была названа и компания.

Тут наступил решающий с точки зрения Бориса Нуралиева момент в истории компании. Изучая литературу об устройстве софтверного бизнеса на Западе, он принимает решение вложить заработанные деньги в дистрибуцию готовых программ, причем для этой цели он решает создавать разветвленную дистрибьюторскую сеть.Вначале (с февраля 1991) компания стала продавать в России зарубежный программный продукт "Lotus 1-2-3", суперпопулярный в то время на Западе и малоизвестный в России. "Lotus 1-2-3" - электронные таблицы, конкурирует с более распространенной Microsoft Excel.

Затем, проанализировав, для чего используется покупателями Lotus, Борис Нуралиев принимает второе стратегическое решение - изготовить бухгалтерскую программу и запустить ее в дистрибьюторскую сеть (на продажу). На рынке бухгалтерских программ к тому времени уже были "Парус", "Инфин", "Инфобухгалтер", "Турбобухгалтер", "Финансы без проблем" и другие. Однако у фирм-изготовителей этих программ не было такой мощной сбытовой сети, как у 1С и это давало шанс последней.

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

В 1997 году Нуралиев решил охватить не только бухгалтерию, но и другие сферы деятельности предприятия, что было реализовано в продукте 1C:Предприятие. Было создано универсальное средство автоматизации различных задач. Система 1С:Предприятие 7.0 была построена на совершенно новой идеологии, сохранив преемственность с 1С:Бухгалтерией 6.0. Именно с версии 7.0 фирма 1С встала на путь объектно-ориентированной системы, чем сильно упростила жизнь программистов. Существуют версии 1С:Предприятие 7.5 и 1С:Предприятие 7.7. Была создана универсальная инструментальная среда для разработки учетных приложений. Это решение вывело фирму 1С в абсолютное лидерство в сфере отечественных продуктов для автоматизации работы предприятий малого и среднего бизнеса.



Итоги и группировка таблицы значений


//получить итог по колонке можно методом Итог

ВсеОклады = ТабЗнач.Итог("Оклад")

//часто требуется группировать строки и подсчитывать итоги по группам,

//в этом случае применяется метод Свернуть

Синтаксис: Свернуть(<ГруппКолонки>,<СуммКолонки>)

//проссумировать оклады по каждой должности

ТабЗнач.Свернуть("Должность","Оклад");

//Можно группировать и суммировать сразу по нескольким колонкам

ТабЗнач.Свернуть("Категория, Должность","Оклад,Налог");



Изменение заголовка таблицы


Диаграмма1.Заголовок = "Поступления от покупателей";



Изменения конфигурации


Как уже отмечалось, при работе с распределенной ИБ, конфигурация системы может быть изменена только в центральном узле.

Для регистрации изменений конфигурации и передачи ее на периферийные ИБ используется тот же механизм, что и для объектов данных. При записи измененной конфигурации, в таблицу регистрации изменений объектов по числу известных периферийных ИБ заносятся записи, фиксирующие факт изменения конфигурации.

После записи измененной конфигурации в распределенной ИБ складывается такая ситуация, что центральная и периферийные ИБ работают фактически с разными конфигурациями. В таком состоянии созданные на периферийной ИБ файлы переноса данных не могут быть загружены на центральной ИБ по той причине, что в условиях различных конфигураций содержащаяся в файле информация не может быть правильно интерпретирована. Обмен будет восстановлен только после того, как в периферийную ИБ будет загружена измененная конфигурация с центральной ИБ. То есть после изменения конфигурации требуется выполнить перенос из центральной ИБ в каждую из периферийных, а уже затем выполнять перенос из периферийных ИБ в центр.

Перенос измененной конфигурации в периферийные ИБ осуществляется тем же способом, что и перенос измененных объектов данных. В процессе очередной выгрузки из центральной ИБ, в файл переноса данных целиком включается измененная конфигурация, если, конечно, в таблице регистрации изменений содержится запись о том, что измененную конфигурацию следует передать в соответствующую периферийную ИБ. Выгрузка конфигурации также будет производиться до получения извещения о приеме измененной конфигурации.

Заметим, что конфигурация считается измененной при любых изменениях метаданных, форм, модулей, таблиц конфигурации, наборов прав, пользовательских интерфейсов, описаний. В состав конфигурации не входит список пользователей, а также внешние по отношению к файлу конфигурации (1CV7.MD) файлы (внешние отчеты, отдельно записанные таблицы и тексты). И эти внешние файлы не переносятся механизмом управления распределенной ИБ. Поэтому при конфигурировании распределенной системы не рекомендуется использовать в конфигурации находящиеся в отдельных файлах модули, таблицы и отчеты.


Для изменения уже работающей конфигурации можно рекомендовать использовать механизм загрузки измененной конфигурации. Он позволяет специалисту скопировать конфигурацию, выполнить в ней все необходимые изменения, отладить внесенные изменения (этот процесс может занять и несколько дней), а затем загрузить измененную конфигурацию в центральную ИБ, после чего изменения будут распространены на все периферийные ИБ с очередной передачей изменений. Такая последовательность позволит избежать многократной передачи измененной конфигурации в периферийные ИБ в процессе ее модернизации.

При загрузке файла переноса данных на периферийной ИБ, этап загрузки измененной конфигурации (если, конечно, она содержится в файле переноса данных) предшествует этапу загрузки измененных объектов данных. В случае неудачного завершения загрузки конфигурации, загрузка объектов данных производиться не будет и информационная база останется в том же состоянии, что и была до начала загрузки. Загрузка измененной конфигурации может завершиться неудачей, если измененная конфигурация не соответствует существующим данным. Например, было уменьшено число уровней справочника, а новое число уровней оказывается меньшим, чем фактически содержащееся в справочнике или в других подобных случаях. Если такое произошло, то следует привести данные в соответствие с новой конфигурацией или изменить конфигурацию в центральной ИБ и заново произвести выгрузку, чтобы ликвидировать возникшее противоречие.


Измерения и ресурсы


Основная проблема при проектировании регистров - это определение его структуры. Структура регистра должна быть такова, чтобы извлекать из него нужную информацию без утомительной обработки.

Измерения регистра - это то, в каких разрезах требуется хранение информации.

Ресурсы регистра - это количественные или суммовые данные, которые хранятся в регистре.

Предположим, что регистр «Остатки товаров» должен содержать сведения о количестве и стоимости каждого товара на каждом складе. В идеологии системы 1С:Предприятие регистр такого вида представляет собой прямоугольную систему координат на одной оси которой находятся склады, на другой — товары, а на пересечении конкретного склада и конкретного товара находятся цифры количества товара и стоимости товара.

Регистр: Остатки товаров

Измерения: Товар, Склад

Ресурсы: Кол-во, Стоимость

С помощью методов встроенного языка мы можем легко получить ответы на вопросы:

остаток конкретного товара на конкретном складе

остаток конкретного товара на всех складах

стоимость всех товаров на конкретном складе



Элементы диалога на форме


В модуле формы к элементам диалога можно обращаться по их идентификаторам через конструкцию Форма.ЭлементДиалога

Форма.Сотрудник.Доступность(1); //сделать доступным

Форма.Сотрудник.Доступность(0); //сделать недоступным

Форма.Сотрудник.Видимость(1); //сделать видимым

Форма.Сотрудник.Видимость(0); //сделать невидимым

//можно менять заголовки на кнопке и на других элементах диалога

Форма.Кнопка.Заголовок("Далее >>");

Форма.Кнопка.Заголовок("Готово!");

//можно менять цвет элементов диалога

Если ВыбрСотрудник.Выбран()=0 Тогда

... Форма.Надпись_Сотрудник.Цвет(200,50,50); //красный, зеленый, синий (RGB)

....Активизировать("ВыбрСотрудник");

Иначе

... Форма.Надпись_Сотрудник.Цвет(0,0,0);

КонецЕсли;



Юрий (г.Череповец)


Огромное Вам спасибо за книгу по 1С, она мне очень помогла в моей работе.



КАЛЕНДАРИ


Метод / атрибут
Описание
Уровень()
ЭтоГруппа()
Этот метод возвращает 1, если текущий элемент справочника является группой, или 0 если группой не является.
ПринадлежитГруппе(...)
Метод проверяет, принадлежит ли указанной группе текущий элемент справочника (независимо от того, на каком нижележащем уровне он находится).
атрибут Родитель
ПолныйКод()
ПолноеНаименование()

Ссылка на календарь

Подсчет дней и часов

Отсчет даты



Календари и Праздники


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

Календарь представляет собой объект, который устанавливает для каждой календарной даты некоторое числовое значение, которое может интерпретироваться при работе программы тем или иным образом. Например, в календаре, представляющем собой график работы организации или предприятия, каждому рабочему дню может соответствовать единица, а каждому выходному — ноль. В календаре учета рабочего времени сотрудников предприятия каждой дате календаря может соответствовать число — продолжительность рабочего дня в часах и т. д.

Праздники. Допустим, что у вас на предприятии несколько категорий работников, например 5 категорий, и для каждой категории заведен свой календарь. Представьте, что в стране объявлен всеобщий праздник, например, "День 1С". Используя данную функцию вы можете один раз завести этот праздник, и он автоматически отразится во всех календарях, у которых стоит флажок "Учитывать праздники". Красота!




"Книги" (форма списка)


Экранная форма списка справочника Книги выглядит следующим образом:



Коллизии


При работе в реальных распределенных ИБ один и тот же объект может изменяться одновременно в различных узлах распределенной ИБ. И при переносе измененных объектов из одной ИБ в другую может случиться так, что в какую-либо ИБ будет загружаться объект, зарегистрированный в самой этой ИБ как измененный. Такая ситуация носит название коллизии. Приведем описание действий системы в наиболее типовых вариантах коллизий.

Один и тот же объект изменен более чем в одной ИБ.

Общий принцип здесь состоит в том, что "главным" считается изменение, произведенное в центральной ИБ. Отработка ситуации различается в зависимости от того, на какой ИБ - центральной или периферийной коллизия обнаружена. Если коллизия обнаружена на центральной ИБ, то есть при загрузке файла переноса из периферийной ИБ обнаружено, что один из измененных объектов также изменен и в центральной ИБ, то изменения объекта в центральную ИБ не загружаются. При этом гарантируется, что при очередной выгрузке в адрес периферийной ИБ будет передано состояние объекта как оно есть в центральной ИБ. Если же коллизия обнаружена на периферийной ИБ, то изменения объекта, прибывшие из центральной ИБ загружаются.

Объект, измененный в одной ИБ, удален в другой.

В данном случае принцип заключается в том, что изменение всегда "главнее" удаления. В случае, если на центральную ИБ прибывает файл переноса, в котором содержится информация, что некоторый объект удален на периферийной ИБ, то в центральной ИБ объект не удаляется, а в записи таблицы регистрации изменений данный объект помечается как измененный. То есть при очередном обмене объект будет восстановлен в той ИБ, в которой он был удален, причем само содержание объекта будет соответствовать той ИБ, которая "отвергла" удаление.

Аналогичные действия производятся, если коллизия обнаружена на периферийной ИБ.

Объект, удаленный в одной ИБ, не может быть удален в другой по причине наличия ссылок на него.

При загрузке изменений, если загружается информация об удалении объектов, автоматически включается механизм контроля ссылочной целостности и выполняется проверка наличия ссылок в данной ИБ на объекты, которые переданы как удаленные.


В случае обнаружения коллизии такого рода, вне зависимости от того на какой из ИБ она была обнаружена, выполняется следующее: удаление не выполняется, а в таблицу регистрации изменений заносится запись о том, что объект должен быть перенесен в адрес той ИБ, из которой была прислана информация о его удалении.

При очередном обмене объект восстанавливается в той ИБ, в которой он был удален, однако само содержание объекта будет соответствовать той ИБ, которая "отвергла" удаление.

Таким образом, управление распределенной информационной базой имеет определенную стратегию автоматического разрешения любых коллизий с описанными приоритетами. Однако, в реальных условиях рекомендуется средствами конфигурации определить возможные действия пользователей на различных узлах таким образом, чтобы исключить или минимизировать вероятность возникновения коллизий. Основным путем является определения средствами конфигурации "ответственного" узла за каждый ведущий объект в распределенной ИБ и ограничение всем остальным возможности его редактирования и удаления. Определение "ответственных" должно происходить исходя из логики работы предприятия. Очевидно, что многие виды объектов можно разрешить изменять только в центральной ИБ (например, список складов). Для многих объектов можно рекомендовать средствами встроенного языка установить возможность изменения только на той ИБ, на которой они созданы, например для документов.


Конфигуратор


Все начинается с запуска Конфигуратора. Программы для 1С:Предприятие называются "конфигурациями" и создаются они в специальном режиме для разработчика "Конфигуратор". Обычные пользователи работают в режиме "Предприятие".


Назначение конфигуратора

Окно Конфигуратора

Дерево конфигурации

Редактор форм

Программные модули

Шаблоны

Редактор печатных форм

Администрирование базы

Загрузка измененной конфигурации

Сидит папа-программист в глубокой отладке, к нему подходит сынишка и спрашивает:

- Папа, а почему солнце всходит на востоке?

Папа отвечает:

- Ты проверял?

- Да!

-Каждый день проверял?

- Да!

- И все время на востоке?

-Да, все время!

- Только ради бога, сынок! Ничего не трогай! Ничего не меняй!



"Конкурент-магазин 3.18"


hotlog_js="1.0";hotlog_d=document; hotlog_n=navigator;hotlog_rn=Math.random(); hotlog_n_n=(hotlog_n.appName.substring(0,3)=="Mic")?0:1 hotlog_r=""+hotlog_rn+"&s=2871&r="+escape(hotlog_d.referrer)+"&pg="+ escape(window.location.href) hotlog_d.cookie="hotlog=1"; hotlog_r+="&c="+(hotlog_d.cookie?"Y":"N"); hotlog_d.cookie="hotlog=1; expires=Thu, 01-Jan-70 00:00:01 GMT"

hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N")

hotlog_js="1.2";hotlog_s=screen; hotlog_r+="&wh="+hotlog_s.width+'x'+hotlog_s.height+"&px="+((hotlog_n_n==0)? hotlog_s.colorDepth:hotlog_s.pixelDepth)

hotlog_js="1.3"

hotlog_r+="&js="+hotlog_js; hotlog_d.write("

")



Методы УстановитьЗначение и ПолучитьЗначение


Эти методы позволяют обращаться к данным в таблице значений для чтения и записи.

Они могут пригодиться в особых случаях при написании универсальных программ (мастеры отчетов и т.д.).

Синтаксис: УстановитьЗначение(<Строка>,<Колонка>,<Знач>)

Синтаксис: ПолучитьЗначение(<Строка>,<Колонка>)

ТабЗнач.НоваяСтрока();

ТабЗнач.УстановитьЗначение(1,"Номер",100);

ТабЗнач.УстановитьЗначение(1,"Сотрудник","Иванов Иван Иванович");

ТабЗнач.УстановитьЗначение(1,3,10000); //обращение к 1-й строке и 3-й колонке ("Оклад")

Номер = ТабЗнач.ПолучитьЗначение(1,"Номер");

ФИО = ТабЗнач.ПолучитьЗначение(1,"Сотрудник");

Оклад = ТабЗнач.ПолучитьЗначение(1,3); //обращение к 1-й строке и 3-й колонке "Оклад"



Михаил (г.Санкт-Петербург)


Приятный сайт. Очень рад что нашел здесь учебник по 1C - долго не мог найти его в рунете. Спасибо!



Мини-библиотека (пример)


Описание конфигурации

Ограничения

Начало работы

Работа с программой

Что можно скачать

- По одному сотовому они с братками советуются, а другим указывают, что им завернуть.



КОНСТРУКТОРЫ


hotlog_js="1.0";hotlog_d=document; hotlog_n=navigator;hotlog_rn=Math.random(); hotlog_n_n=(hotlog_n.appName.substring(0,3)=="Mic")?0:1 hotlog_r=""+hotlog_rn+"&s=2871&r="+escape(hotlog_d.referrer)+"&pg="+ escape(window.location.href) hotlog_d.cookie="hotlog=1"; hotlog_r+="&c="+(hotlog_d.cookie?"Y":"N"); hotlog_d.cookie="hotlog=1; expires=Thu, 01-Jan-70 00:00:01 GMT"

hotlog_js="1.1";hotlog_r+="&j="+(navigator.javaEnabled()?"Y":"N")

hotlog_js="1.2";hotlog_s=screen; hotlog_r+="&wh="+hotlog_s.width+'x'+hotlog_s.height+"&px="+((hotlog_n_n==0)? hotlog_s.colorDepth:hotlog_s.pixelDepth)

hotlog_js="1.3"

hotlog_r+="&js="+hotlog_js; hotlog_d.write("

")



Метод ИспользоватьКорСубконто


Метод ИспользоватьКорСубконто устанавливает режим отбора итогов по субконто методом ВыполнитьЗапрос. Метод ИспользоватьКорСубконто слудет вызывать до вызова метода ВыполнитьЗапрос. После выполнения метода ВыполнитьЗапрос установки метода ИспользоватьКорСубконто сбрасываются и перед слудеющим запросом их нужно устанавливать заново.

Метод ИспользоватьКорСубконто может вызываться последовательно несколько раз. В этом случае установки, выполняемые этим методом суммируются.

Синтаксис: ИспользоватьКорСубконто(<ВидСубконто>, <Субконто>, <ТипФильтра>, <ПоГруппам>)

Параметры аналогичны параметрам метода ИспользоватьСубконто.



Метод ИспользоватьСубконто


Метод ИспользоватьСубконто устанавливает режим отбора итогов по субконто методом ВыполнитьЗапрос. Метод ИспользоватьСубконто слудет вызывать до вызова метода ВыполнитьЗапрос. После выполнения метода ВыполнитьЗапрос установки метода ИспользоватьСубконто сбрасываются и перед слудеющим запросом их нужно устанавливать заново.

Метод ИспользоватьСубконто может вызываться последовательно несколько раз. В этом случае установки, выполняемые этим методом суммируются.

Синтаксис: ИспользоватьСубконто(<ВидСубконто>, <Субконто>, <ТипФильтра>, <ПоГруппам>)

- Почему новые русские ходят в магазины с двумя сотовыми?

Виды конструкторов

Юзер: Хочу базу данных!

Конструктор: Готово!

Юзер: Хочу, чтобы работала! (отладка)

Конструктор: ОК!



Краткая справка о фирме "1С"


Фирма "1С" специализируется на дистрибьюции, поддержке и разработке компьютерных программ и баз данных делового и домашнего назначения. Основанная в 1991 г., "1С" – чисто российская фирма со штатом более 200 человек, опирающаяся исключительно на собственные профессиональные успехи. По данным многочисленных опросов "1С" занимает первое место в софтверном секторе российской компьютерной индустрии и отличается рекордной отдачей от одного сотрудника. Среднемесячный оборот компании превышает 2 млн. долларов, из него более половины -- на продаже продуктов производства фирмы 1С. Количество зарегистрованных пользователей продуктов фирмы 1С превышает 200 000. Бесменный директор и бизнес-идеолог компании - Борис Нуралиев.

Фирма "1С" поставляет со своего склада полный спектр программ массовой ориентации для офиса и дома, насчитывающий в настоящее время более 1500 позиций. Из собственных разработок фирмы "1С" наиболее известны "1С:Бухгалтерия", самый продаваемый в СНГ программный продукт, а также "1С:Торговля и Склад", "1С:Зарплата и Кадры", "1С:Налогоплательщик", "1С:Электронная почта", "1С:Деньги", серия обучающих программ "1С:Репетитор", игра "Князь. Легенды Лесной страны", издательские проекты 1С:Геймос "Братья Пилоты" (2 выпуска), "Дальнобойщики", "Аллоды" и "Аллоды 2", "Проклятые Земли", "Корсары", серии локализаций популярных западных игровых продуктов, сказок, коллекции игр и другие.

В распространении программ других вендоров фирма "1С" выступает в качестве официального дистрибьютора Microsoft, Novell, Symantec, IBM-Lotus и других зарубежных фирм. "1С" является самым серьезным дистрибьютором продукции российских софтверных компаний: ПроМТ, ABBYY, ИНЭК, Лаборатория Касперского и более чем 50 других отечественных фирм. "1С" поддерживает самый большой в России склад по отечественному домашнему софту, являясь крупнейшим дистрибьютором таких поставщиков, как Бука, Никита, Руссобит-М и других

Адрес сайта фирмы 1С:



Леонид (г.Санкт-Петербург)


Первичная благодарность от "чайника". Попробовал начать создание складской конфигурации. Пока все ясно и понятно. Написано живым языком. Если бы так преподавали на курсах по программированию в 1С, которые я имел "счастье" закончить, глядишь не пришлось бы по второму кругу учить с нуля :))



Максим (г.Казань)


Просто замечательно. Давно искал подобный сайт, именно в плане реализации описания 1С, примеры, подробные описания и комментарии, все это очень помогло в изучении. Спасибо :-)...Обязательно буду регулярно посещать.



Метод Актуальность


Устанавливает или сбрасывает признак актуальности временных итогов.

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

Данную возможность следует использовать только в специальных случаях, например, для оптимизации больших регламентных расчетов. Данная возможность может применяться только при работе программы в монопольном режиме или, если не в монопольном режиме, то только при проведении документа.

Синтаксис: Актуальность(<Флаг>)

<Флаг>: 1 — поддерживать временный расчет в актуальном состоянии; 0 — не поддерживать;

Про работу объекта БухгалтерскиеИтоги в режиме запроса вы можете прочитать здесь.

Назначение конструкторов
1С версия 3000 года:

1 — разворачивать по данному субконто (по умолчанию),

2 — отбирать по данному субконто,

3 — не учитывать это субконто вообще.

0 — не показывать итоги по группам справочника (по умолчанию);

1 — показывать итоги по группам справочника.

Пример:

* Данный запрос формирует итоги по счету 10 в разрезе материалов по одному складу.

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Материалы, , 1);

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Склады, ВыбСклад, 2);

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон, "10");



Метод Опции


Синтаксис: Опции(<ВключатьЗабалансовыеСуммы>, <ВключатьОборотныеСубконтоСуммы>)

Метод Опции должен вызываться до выполнения метода ВыполнитьЗапрос. Он устанавливает режимы включения в итоги сумм по забалансовым счетам и оборотным субконто. Если метод не вызвался, суммы по забалансовым счетам и оборотным суб­конто не включаются в запрос.

Если параметр равен 1, то эти суммы включаются в запрос, если 0, то не включаются.



Метод Рассчитать


Синтаксис

Рассчитать(<НачалоПериода>, <КонецПериода> , <ФильтрПоСчетам>, <ТолькоСинтетика> , <ПланСчетов>, <РазделительУчета>)

Параметр
Описание
<ВидСубконто>
Значение типа «Вид Субконто» — расчет времен­ных итогов будет выполнен только для субконто указанного вида. Задается значением типа «Вид Субконто» или строкой содержащей имя иденти­фикатора вида субконто, как он назван в конфи­гураторе.
<Субконто>
Необязательный параметр. Здесь может быть за­дано или одно конкретное значение субконто, по которому будут отобраны итоги по аналитике или объект типа «Список значений», где можно задать несколько значений субконто. Если параметр не задан — то считается пустым значением субконто.
<ТипФильтра>
Необязательный параметр. Число — тип фильтра по субконто. Может принимать следующие значе­ния:
<ПоГруппам>
Необязательный параметр. Число — группировка др итогов по субконто. Параметр <ПоГруппам> имеет смысл, если параметр <ТипФильтра> равен 1, а вид субконто, заданный параметром <ВидСубконто>, имеет тип значения «Справочник». Параметр может принимать значения:

Необязательный параметр. Выражение типа дата, документ или позиция документа начала периода расчета временных итогов. Если этот параметр не указан, будут вычисляться конечные сальдо на момент, указанный в параметре <КонецПериода>.

Необязательный параметр. Выражение типа дата, документ или позиция документа конца периода расчета временных итогов. Если этот параметр не указан, будут вычисляться начальные сальдо на момент, указанный в параметре <НачалоПериода>.

Если из двух параметров периода задан только параметр начала периода, метод Рассчитать вычислит начальные остатки — без оборотов. Наоборот, если задан параметр конца периода, будут вычисленные конечные остатки.

1 — рассчитывать сальдо только по счетам;

0 — или не указан — рассчитывать сальдо по счетам и по субконто.

Установка параметра <ТолькоСинтетика> в 1 задает выполнение расчета итогов только по счетам, без субконто. В этом случае функции для получения развернутого сальдо по субконто СНДРС, СКДРС, СНКРС, СККРС для счетов, по которым ведется аналитический учет по субконто будут возвращать 0, даже если реально в информационной базе есть остатки по этим счетам.

Если параметр <ТолькоСинтетика> не указан или равен 0, временный расчет итогов будет выполнен и по счетам, и по субконто.



Метод ВключатьСубсчета


Метод ВключатьСубсчета должен вызываться до выполнения метода ВыполнитьЗапрос. Он устанавливает режим, при котором итоги отбираемые запросом будут разворачиваться по субсчетам соответвенно основных и корреспондирующих счетов.

Синтаксис: ВключатьСубсчета(<ФлагСчета>, <ФлагКоррСчета>}

Параметр
Описание
<НачалоПериода>
<КонецПериода>
<ФильтрП, рСчетам>
Необязательный параметр. Счета, для которых будет выполняться временный расчет итогов. Задается значением типа «Счет» или объектом типа «СписокЗначений», содержащим значения типа «Счет», либо строкой содержащей список кодов счетов, разделенных символом ", " или ";".
<ТолькоСинтетика>
Необязательный параметр:
<ПланСчетов>
Необязательный параметр. Ограничение расчета одним планом сче­тов.
<РазделительУчета>
Необязательный параметр. Значение разделителя учета. Ограничение расчета одним значением раз­делителя учета.

Необязательный параметр. Признак развертыва­ния сальдо по субсчетам основного счета. Число:

0 — не разворачить по субсчетам (по умолчанию);

1 — разворачивать по субсчетам;

-1 (минус единица) — не выдавать итоги по сче­там-группам.

0 — не разворачить по субсчетам (по умолчанию);

1 — разворачивать по субсчетам;

-1 (минус единица) — не выдавать итоги по кор­респондирующим счетам-группам.



Метод ВыполнитьЗапрос


Синтаксис: ВыполнитьЗапрос(<НачалоПериода>, <КонецПериода>, <ФильтрПоСчетам>, <ФильтрПоКоррСчет>, <Валюта>, <ТипИтогов>, <Периодичность>, <ТипСуммы>)

Параметр
Описание
<ФлагСчета>
<ФлагКоррСчета>
Необязательный параметр. Признак развертыва­ния сальдо по субсчетам корреспондирующего счета. Число:

1 — остатки и обороты по счету в целом (по умолчанию);

2 — обороты между счетами;

3 — Первое и второе вместе.

Необязательный параметр. Позволяет получить дополнительный разрез итогов по периодам. Чис­ло или символьная строка. По умолчанию периодичность не задана. Параметр <Периодичность> может принимать следующие значения:

<


/p>

Параметр
Описание
<НачалоПериода>
Необязательный параметр. Выражение типа дата, документ или позиция документа начала периода запроса. Если этот параметр не указан, будут вы­числяться начальные сальдо на момент, указан­ный в параметре <КонецПериода>
<КонецПериода>
Необязательный параметр. Выражение типа дата, документ или позиция документа конца периода запроса. Если этот параметр не указан, будут вычисляться начальные сальдо на момент, указанный в параметре <НачалоПериода>.
<ФильтрПоСчетам>
Необязательный параметр. Счета, для которых будут отбираться итоги в запросе. Задается зна­чением типа «Счет» или объектом типа «Список-Значений», содержащим значения типа «Счет», либо строкой содержащей список кодов счетов, разделенных символом ", " или ";". Если параметр не указан, отбор будет выполняться по всем сче­там.
<ФильтрПоКоррСчет>
Необязательный параметр. Значение типа «Счет» — корреспондирующий счет, в корреспон­денции с которым будут отбираться итоги счета, указанного в параметре <ФильтрПоСчетам>. Задается значением типа «Счет» или объектом типа «СписокЗначений», содержащим значения типа «Счет», либо строкой содержащей список кодов счетов, разделенных символом "," или ";". Если параметр не указан, будут отбираться итоги в корреспонденции со всеми счетами.
<Валюта>
Необязательный параметр. Значение типа «Справочник.Валюты». Если параметр не указан итоги выдаются без учета валюты.
<ТипИтогов>
Необязательный параметр. Число — тип отбирае­мых итогов. Может принимать следующие значе­ния:
<Периодичность>
1 («С») рассчитывать суммы;

2 («В») рассчитывать валютные суммы;

4 («К») рассчитывать количество.

Если требуется одновременно рассчитывать разные суммы, значение параметра получается путем сложения допустимых значений, например: 5 (1+4) — рассчитывать суммы и количество. При указании параметра строкой в ней указываются все символы, которые обозначают типы сумм, которые нужно рассчитывать. По умолчанию рассчитываются все типы сумм.

В зависимости от переданных параметров итоги могут быть подготовлены методом ВыполнитьЗапрос в различных разрезах. Кроме того, на результат запроса влияют дополнительные установки, которые выполняются вызовами специальных методов объекта «Бухгалтерские Итоги».

Метод ВключатьСубсчета позволяет получить итоги в разрезе субсчетов.

Применение метода ИспользоватьСубконто (перед вызовом ВыполнитьЗапрос) позволяет сформировать запрос в разрезе субконто.

После выполнения запроса обход запросов в различных разрезах выполняется соответствующими методами объекта. Для доступа к итогам в разрезе периодов используются методы ВыбратьПериоды и ПолучитьПериод.

Пример

//рассчитать остатки и обороты по счету 60 за заданный период

БухИтоги.ВыполнитьЗапрос(ДатаНач, ДатаКон, "60", , 3);


Методы


Число
Синоним Примечание
1
«Период» Промежуточные итоги не рассчитываются;
2
«Операция» Промежуточные итоги рассчитываются по операциям;
3
«Проводка» По проводкам
4
«День» По дням
5
«Неделя» По неделям
6
«Декада» По декадам
7
«Месяц» По месяцам
8
«Квартал» По кварталам
9
«Год» По годам
<ТипСуммы>
Необязательный параметр. Число или строка — тип рассчитываемых итогов. Может принимать следующие значения (в скобках указаны строковые синонимы):

Включить/Отключить режим добавления строк по шаблону. Шаблон означает, что в квадратных скобках указаны имена переменных или выражения на встроенном языке. При формировании такой строки 1С вычислит все выражения в квадратных скобках и подставит их в строку.

Пример, "Сотрудник с табельным номером [Сотрудник.Код] обработан." При формировании такой строки в режиме шаблона результирующая строка будет иметь вид: "Сотрудник с табельным номером 123 обработан."

Возвращает текущее числовое значение режима кодировки (на момент до исполнения метода).



Методы объекта Периодический


Метод
Описание
Открыть(<ИмяФайла>)
Открыть текстовый файл с указанным именем.
КоличествоСтрок()
Возвращает число строк в тексте.
ПолучитьСтроку(<НомерСтроки>)
Возвращает строку текста с заданным номером.
ДобавитьСтроку(<Строка>)
Добавить строку в конец текста.
УдалитьСтроку(<НомерСтроки>)
Удалить строку с указанным номером.
ВставитьСтроку(<НомСтроки>,<Строка>)
Вставить строку с указанным номером.
ЗаменитьСтроку(<НомерСтроки>,<Строка>)
Заменить строку с указанным номером.
Шаблон(<Флаг>)
ФиксШаблон(<Флаг>)
В отличие от метода Шаблон, ограниченные квадратными скобками поля замещаются значениями выражений с сохранением своей длины в символах, то есть обрезаются, если поле короче результата вычисления выражения и дополняются пробелами если длиннее. Если результат числовой, то в границах поля строка прижимается к правой границе.
Показать(<Заголовок>,<ИмяФайла>)
Открыть окно редактирования текста.
ТолькоПросмотр(<Режим>)
Разрешить / запретить возможность редактирования текста в окне просмотра. Вызывается до метода Показать.
Очистить()
Очищает содержимое текстового документа. Его использование позволяет заново заполнить содержимое текстового документа.
КодоваяСтраница(<Режим>)
Установить режим кодировки текста. 0 - windows-кодировка, 1 - DOS-кодировка.
Записать(<ИмяФайл>)
Записать текст в файл с указанным именем.

Также часто применяются следующие методы:

Метод
Описание



Методы периодических реквизитов


//так мы узнаем, какая была у сотрудника категория на определенную дату

Катег = СпрСотр.Категория.Получить(НекаяДата);

//так мы установим сотруднику категорию на определенную дату

СпрСотр.Категория.Установить(НекаяДата, НоваяКатегория);



Методы работы с периодом журнала расчетов


НачалоПериода = ЖЗ.НачалоТекущегоПериода();

КонецПериода = ЖЗ.КонецТекущегоПериода();

ПериодСтрокой = ЖЗ.ОписательПериода(НачМес); //например "Январь 2002 г"

Метод
Описание
Получить
 
Установить
 
ИспользоватьДату  

Постановка задачи

Объекты конфигурации

Справочник "Произведения"

Справочник "Книги"

Документ "Выдача книги"

Документ "Продление книги"

Документ "Возврат книги"

Документ "Потеря книги"

Отчет "Библиотечная выписка"

Отчет "Долги читателя"

Дополнительные функции

Что можно скачать

- Как пройти в библиотеку?



Мини-склад (пример)


В три часа ночи:

Объекты конфигурации

Документ Приход

Документ Расход

Отчет "Остатки материалов"

Дополнительные функции

Что можно скачать

- Нет - значит не было. Я ее съел.

- На каком ходу?

- На четырнадцатом. Что вы мне голову морочите?

- Позвольте! У меня все ходы записаны!



Минимальный кадровый учет


В конфигурации есть 2-хуровневый справочник Сотрудники, содержащий две системные группы: Работающие и Уволенные. Ввод нового сотрудника производится документом "Прием на работу".

В конфигурации есть три кадровых документа, обеспечивающих самые обязательные операции по движению кадров: "Прием на работу", "Перемещение", "Увольнение". Эти документы хранятся в журнале "Кадровые документы".

По каждому сотруднику хранится следующая информация:

Табельный номер (реквизит Код)

ФИО (реквизит Наименование)

Категория*

Подразделение*

Должность*

Разряд*

Оклад*

Календарь*

Дата приема

Дата увольнения

Реквизиты, отмеченные звездочкой, являются периодическими. Это означает, что в программе хранится история их изменения по датам. Изменение этих реквизитов должно оформляться кадровым документом "Перемещение". Реквизиты "Дата приема" и "Дата увольнения" заполняются автоматически при проведении документов "Прием на работу" и "Увольнение". При увольнении сотрудник автоматически переходит в группу Уволенные.



Модули, процедуры и функции


Вся конфигурация, как вы уже наверное заметили, состоит из модулей. Это могут быть модули документов или модули отчетов или другие модули. Модули состоят из процедур и функций. Процедура -- это небольшая программа для выполнения определенной задачи. Функция отличается от процедуры, только тем, что имеет результат. Говорят, "функция возвращает результат". Например, модуль "Приказа о приеме на работу" может иметь следующие процедуры ПроверитьПравильность( ) и НапечататьПриказ( ).



Начало работы


Порядок начала работы и ввода остатков.

//-------------------------------------------------------------------

1. Заполняются константы и справочники.

Справочник номенклатуры удобнее заполнять по ходу работы.

Сервис-Параметры-Общие установить 4 цифры в датах.

Сервис-Параметры-Журналы установить период видимости журналов

начало года - конец года или по Вашему усмотрению.

2. Вносятся остатки товара на складе.

Приходная накладная со статусом документа ВводОстатков.

3. Вносятся остатки товара по точкам.

Документ реализатора со статусом документа ВводОстатков.

4. Вносятся остатки взаиморасчетов с клиентами.

Документ Остатки взаиморасчетов.

Импорт из типовой торговой конфигурации 7.XXX.

//-------------------------------------------------------------------

1. Из типовой конфигурации выполнить обработку EX_TRADE.ERT

Установить дату нач. и дату кон. на текущую дату они влияют на выборку периодических реквизитов.

Выгрузить Склады, Пользователей, Номенклатуру, Контрагентов

2. Из новой конфигурации выполнить загрузку Склады, Пользователей, Номенклатуру, Контрагентов

3. Для переноса некоторых реквизитов можно использовать обработку EX_SPRAV.ERT

При этом для сязи баз используется поле НАИМЕНОВАНИЕ а конкретный реквизит справочника

Вы можете задать в коде обработки.

4. В типовой конфигурации создайте документ ИНВЕНТАРИЗАЦИЯ_РЕАЛИЗАТОРА для каждого реализатора

И выгрузите в файл через обработку EX_TRADE.ERT.

Для файла обмена лучше задавать полный путь файла например: C:\OST1.TXT

5. В типовой конфигурации создайте документ ИНВЕНТАРИЗАЦИЯ для каждого склада

И выгрузите в файл через обработку EX_TRADE.ERТ

6. В новой конфигурации выполните обработку DOC_EXCH.ERT

Указывайте правильно имена файлов обмена.

Для остатков склада нажимайте кнопку загрузка в ПРИХОДНУЮ_НАКЛАДНУЮ

Для остатков реализатора нажимайте кнопку загрузка в ДОКУМЕНТ_РЕАЛИЗАТОРА

Исправьте шапки документов. Укажите правильно статус документа. (ВводОстатков)



Налоговые льготы сотрудника


Если у сотрудника есть право на стандартные налоговые вычеты, то их следует ввести в справочник НалоговыеЛьготы, который подчинен справочнику Сотрудники. Для этого нужно открыть справочник Сотрудники, перейти курсором на нужного сотрудника и открыть подчиненный справочник НалоговыеЛьготы.

Для каждой налоговой льготы можно указать период ее действия. Если не указывать окончание периода действия льготы, тогда она будет действовать все время, пока сотрудник не уволен.

Если у сотрудника введены налоговые льготы, тогда при проведении документа "Начало месяца" в журнал Зарплата добавляются виды расчета "СтандВычетНаСебя" и "СтандВычетНаДетей". Вычеты влияют на расчет подоходного налога.



Наполнение данными диаграммы


Диаграмма как объект системы 1С принадлежит таблице, в которую она вставлена. Обращение к объекту происходит в момент вывода на печать таблицы (метод Вывести()) или секции таблицы (метод ВывестиСекцию()), в которую вставлена диаграмма. Для того, чтобы при обращении были выполнены некоторые действия по подготовке данных для диаграммы, в свойствах объекта на закладке "Текст" необходимо указать строку вызова соответствующей процедуры, передав ей в качестве параметра контекст диаграммы как текущего объекта таблицы. Строка может выглядеть, например, так:

ОбработкаДиаграммы(Таб.ТекущийОбъект)

где: ОбработкаДиаграммы - имя процедуры, Таб - имя выходной таблицы (должна быть предварительно создана методом СоздатьОбъект()).

В модуле описывается процедура с идентификатором, через который будет производиться к контексту диаграммы:

Процедура СформироватьДиаграмму(Диаграмма1)

где Диаграмма1 - идентификатор, в который передается контекст объекта Диаграмма. Все методы объекта записываются через точку после идентификатора.



Назначение и основные принципы


В тех случаях, когда предприятие представляет собой территориально распределенную структуру, зачастую сохраняется потребность в ведении единой системы учета. То есть необходимо иметь возможность работать в едином пространстве документов, получать отчеты, отражающие состояние дел как в территориально удаленных подразделениях предприятия, так и на предприятии в целом и т.п. При этом не всегда имеется возможность организовать работу всех подразделений с единой информационной базой в режиме он-лайн.

Для решения подобных задач предназначена компонента "Управление распределенными ИБ". С помощью указанной компоненты можно организовать двухуровневую структуру информационных баз (ИБ) системы 1С:Предприятие, состоящую из одной центральной и нескольких периферийных информационных баз, работающих с единой конфигурацией. При этом система будет стремиться поддерживать одинаковое состояние объектов данных во всех узлах распределенной ИБ.

Содержимое информационных баз синхронизируется путем переноса измененных объектов данных между каждой из периферийных и центральной ИБ. Для переноса данных используются так называемые файлы переноса данных. Перенос изменений выполняется только между центральной и периферийными ИБ. Перенос данных непосредственно между периферийными ИБ невозможен. Поэтому изменения данных, произведенные в одном из периферийных узлов распределенной ИБ попадают в другие периферийные узлы только через центральную ИБ.

В простейшем случае (по умолчанию) областью распространения изменений для всех объектов является вся распределенная ИБ. Таким образом, в случае если в течение какого-то времени изменения данных системы не будут производиться, и, в то же время, будут произведены все необходимые действия по обмену изменениями между узлами распределенной ИБ, то все узлы будут содержать абсолютно одинаковые данные.

В некоторых случаях может возникнуть необходимость в том, чтобы объекты того или иного типа никогда не попадали в те или иные узлы распределенной ИБ или никогда не покидали места своего создания. Для обеспечения такой возможности предназначен механизм настройки параметров миграции объектов. С его помощью можно ограничить распространение изменений объектов того или иного вида. Кроме того, в версии 7.7 системы 1С:Предприятие можно создавать периферийные ИБ, которые будут принимать информацию о измененных объектах из центральной ИБ, но не будут передавать изменения, сделанные в них самих.


Механизмы распространения изменений объектов работают полностью автоматически. Разработчик конфигурации лишен возможности вмешиваться в функционирование этих механизмов. Для того, чтобы механизмы распределенной ИБ начали работать, не нужно производить никаких специальных действий по конфигурированию системы.

Однако, для того, чтобы документы, элементы справочников и другие объекты, созданные в разных узлах распределенной ИБ, имели заведомо непересекающиеся пространства номеров, кодов и т. п., может потребоваться внести в конфигурацию некоторые изменения. Также изменения в конфигурации должны вноситься при необходимости обеспечить специальные ограничения работы пользователей на периферийных информационных базах.

Для переноса измененных объектов в распределенной ИБ и для первичного создания периферийной ИБ используется файл переноса данных. Он представляет собой упакованный (сжатый) файл, содержащий объекты информационной базы (все при создании периферийной ИБ или измененные при передаче изменений) в специальном формате. Формат данного файла не предназначен для использования его способами отличными от тех, которые предусмотрены механизмами выгрузки/загрузки и передачи изменений. Файл переноса фактически отражает содержимое объектов информационной базы в формате, не зависящем от формата базы данных. Это позволяет использовать в распределенной информационной системе в различных узлах различные форматы хранения данных, поддерживаемые системой 1С:Предприятие (DBF/CDX и MS SQL Server).


Назначение иерархических справочников


Список элементов справочника в системе 1С:Предприятие может быть многоуровневым. В этом случае все строки справочника будут разделяться на 2 вида: «просто» элементы справочника и группы справочника. Группы позволяют переходить на нижележащие уровни многоуровневого справочника. Возможное количество уровней вложенности справочника задается в Конфигураторе.

Использование многоуровневых справочников позволяет организовать ввод информации в справочник с нужной степенью детализации. Элементы и группы элементов в многоуровневом справочнике можно переносить из одной группы в другую.



Назначение конфигуратора


Конфигуратор системы 1С:Предприятие является специальным режимом запуска 1С и предназначен для разработчиков, программистов. В этом режиме разработчик создает или корректирует структуру базы данных, программные модули, производит административные работы. В режиме Конфигуратора нельзя вводить информацию в базу данных, за исключением загрузки базы данных из архивов. Обычные пользователи работают в другом режиме "Предприятие". В этом режиме возможен ввод данных, заполнение справочников и ввод документов, формирование отчетов и запуск обработок. В режиме Предприятие нельзя редактировать структуру конфигурации.

Итак, основное правило:

В режиме Конфигуратор - мы определяем структуру базы данных и пишем программы.

В режиме Предприятие мы используем программы и вводим данные.



Назначение конструкторов


Конфигуратор системы 1С:Предприятие включает набор Конструкторов — вспомогательных инструментов, облегчающих и ускоряющих создание типовых элементов конфигурации. Конструктор «ведет пользователя за руку» по этапам создания объекта метаданных, снабжая подсказками и позволяя, если необходимо, возвращаться к предыдущим этапам и переопределять ранее заданные параметры.

Конструкторы позволяют создать объект метаданных (справочник, документ), помогают написать программу или запрос на встроенном языке 1С, формируют макет отчета (секции таблиц и т.д.).

Пользуйтесь конструкторами, но не забывайте, что то же самое можно сделать "ручками". Иногда это труднее, но позволяет сделать ВСЕ, на что способна 1С. Это примерно так же, как знать HTML и знать Dreamweaver. С помощью Dreamweaver создавался этот сайт, но иногда приходилось подправлять "ручками" HTML-код. Такая совместная работа конструктора и человека неимоверно эффективна! Для простых задач можно пользоваться конструкторами. Для сложных задач или для реализации некоторых "изюминок" приходится стучать по клавиатуре. Такова селяви, как любят говорить русские.



Назначение периодических реквизитов


Включение опции «Периодический» позволяет указать для реквизита справочника хранение истории изменений его значения. Такой реквизит в системе 1С:Предприятие называется периодическим и обладает следующим свойством: в отличие от «обычных» (не периодических) реквизитов, система 1С:Предприятие хранит значения такого реквизита по датам их изменения. При обращении к значению такого реквизита на некоторую дату выдается его значение на эту дату, либо, если таковое отсутствует, — на ближайшую предыдущую дату, на которую устанавливалось значение реквизита.

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

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

В режиме использования конфигурации для периодического реквизита можно вызвать окно «История». Это окно представляет собой таблицу, состоящую из двух граф: дата изменения значения реквизита справочника и значение на эту дату. Окно «История» позволяет редактировать историю изменений значения реквизита напрямую: вводить новые строки, редактировать или удалять существующие.










Постановка задачи
- Только что здесь была моя ладья, а теперь ее нет.