Добро пожаловать, 
  
                             
                
                       
                   
          
         
       
  
										  
     
      
  
      
 
 
	
			
			
				
					
					
					
					В этой статье описываются полезные функции и процедуры, помогающие эффективно работать с различными типами данных в системе "1С:Предприятие 7.7".
* Обработка значений
    * Форматирование
    * Список значений
    * Таблица значений
    * Таблица
    * Период и дата
    * Календари и праздники
    * Справочники
    * Документы
    * Предопределённые функции
    * Налоговый учёт
Обработка значений в 1С 
Код //функция проверяет, является ли переданный в функцию Символ числом
Функция ЭтоЧисло(Символ) Экспорт
     Если (КодСимв(Символ)>=48) И (КодСимв(Символ)<=57) Тогда
          Возврат(1);
     Иначе
          Возврат(0);
     КонецЕсли;
КонецФункции
//функция возвращает копейки
Функция гКопейки(Значение) Экспорт
     Грн=Цел(Значение);
     Коп=Значение-Грн;
     Возврат(Коп
0);
КонецФункции
//функция возвращает сумму без скидки
Функция гСкидка(Сумма,Скидка) Экспорт
     Возврат Сумма*(1-Скидка/100);
КонецФункции
//функция устанавливает новое значение реквизита документа или справочника и задаёт вопрос, если новое значение не соответствует предыдущему
Функция гЗначение(Ко,Атрибут,Значение) Экспорт
     Знач1=Ко.ПолучитьАтрибут(Атрибут);
     Знач2=Значение;
     //проверка
     Если Не(ТипЗначенияСтр(Знач1)=ТипЗначенияСтр(Знач2)) Тогда
          //несоответствие типов
          Возврат(0);
     ИначеЕсли Не(ТипЗначенияСтр(Знач2)="Число") И (ПустоеЗначение(Знач2)=1) Тогда
          //пустое новое значение
          Возврат(0);
     КонецЕсли;
     //реквизит
     Если Метаданные.Документ(Ко.Вид()).Выбран()=1 Тогда
          //документ
          Если Метаданные.Документ(Ко.Вид()).РеквизитШапки(Атрибут).Выбран()=1 Тогда
               Ж=Метаданные.Документ(Ко.Вид()).РеквизитШапки(Атрибут);
               Имя=Ж.Представление();
          ИначеЕсли Метаданные.Документ(Ко.Вид()).РеквизитТабличнойЧасти(Атрибут).
Выбран()=1 Тогда
               Ж=Метаданные.Документ(Ко.Вид()).РеквизитТабличнойЧасти(Атрибут);
               Имя=Ж.Представление()+" (строка "+Ко.НомерСтроки+")";
          Иначе
               Ж=Метаданные.ОбщийРеквизитДокумента(Атрибут);
               Имя=Ж.Представление();
          КонецЕсли;
     ИначеЕсли Метаданные.Справочник(Ко.Вид()).Выбран()=1 Тогда
          //справочник
          Ж=Метаданные.Справочник(Ко.Вид()).Реквизит(Атрибут);
          Имя=Ж.Представление();
          Если ПустаяСтрока(Имя)=1 Тогда
               Имя=Атрибут;
          КонецЕсли;
     КонецЕсли;
     //форматирование
     Если ТипЗначенияСтр(Знач2)="Строка" Тогда
          Знач1=СокрЛП(Знач1);
          Знач2=СокрЛП(Знач2);
     ИначеЕсли ТипЗначенияСтр(Знач2)="Число" Тогда
          Знач2=Окр(Знач2,Ж.Точность);
     КонецЕсли;
     //проверка
     Если Знач1=Знач2 Тогда
          Возврат(0);
     КонецЕсли;
     //установка значения
     Если ПустоеЗначение(Знач1)=0 Тогда
          Текст=
          "Атрибут: "+Имя+"
          |
          |Старое значение: "+СимволТабуляции+Знач1+"
          |Новое значение: "+СимволТабуляции+Знач2+"
          |
          |Установить новое значение?";
          Если Вопрос(Текст,"Да+Нет")="Нет" Тогда
               Возврат(0)
          КонецЕсли;
     КонецЕсли;
     //значение
     Ко.УстановитьАтрибут(Атрибут,Знач2);
     Возврат(1);
КонецФункции
Форматирование данных в 1С 
Код //форматирование числа
Список значений в 1С 
Код //процедура выполняется при добавлении нового значения в интерактивный список значений
Таблица значений в 1С 
Код //процедура сдвигает строку в таблице значений;
Таблица или печатная форма в 1С 
Код //установление автоширины колонок таблицы
Код //функция проверяет, равен ли месяцу интервал между заданными датами
Календари и праздники в 1С
Код //ф//функция возвращает дату, находящуюся на определённом интервале дней от заданной даты, без учёта выходных;
Справочники в 1С
Код //функция возвращает элемент заданного справочника по значению реквизита "Счет"
Документы в 1С
Код //удаление ведущих нолей в номере документа
Предопределённые функции и процедуры в 1С
Код Процедура ОбработкаЯчейкиТаблицы(Значение,Флаг,Таблица,Адрес)
Налоговый учёт и первое событие в 1С
Код 
В статье описаны функции и процедуры, используемые в программе "1С:Предприятие 7.7" для работы со справочниками, документами, списками значений, таблицами значений и с прочими агрегатными типами данных. Образцы практического применения описанных средств Вы сможете найти в статьях "Отчёты для 1С" и "Обработки для 1С".
Источник публикации  
					
						Разместил: Андрей Громов 
						 
				 
			 
			
	 
 
	
			
			
				
					
					
					
					функция проверяет, является ли переданный в функцию Символ числом
Код 
Функция ЭтоЧисло(Символ) Экспорт
     Если (КодСимв(Символ)>=48) И (КодСимв(Символ)<=57) Тогда
          Возврат(1);
     Иначе
          Возврат(0);
     КонецЕсли;
КонецФункции
//функция возвращает копейки
Функция гКопейки(Значение) Экспорт
     Грн=Цел(Значение);
     Коп=Значение-Грн;
     Возврат(Коп
0);
КонецФункции
//функция возвращает сумму без скидки
Функция гСкидка(Сумма,Скидка) Экспорт
     Возврат Сумма*(1-Скидка/100);
КонецФункции
//функция устанавливает новое значение реквизита документа или справочника и задаёт вопрос, если новое значение не соответствует предыдущему
Функция гЗначение(Ко,Атрибут,Значение) Экспорт
     Знач1=Ко.ПолучитьАтрибут(Атрибут);
     Знач2=Значение;
     //проверка
     Если Не(ТипЗначенияСтр(Знач1)=ТипЗначенияСтр(Знач2)) Тогда
          //несоответствие типов
          Возврат(0);
     ИначеЕсли Не(ТипЗначенияСтр(Знач2)="Число") И (ПустоеЗначение(Знач2)=1) Тогда
          //пустое новое значение
          Возврат(0);
     КонецЕсли;
     //реквизит
     Если Метаданные.Документ(Ко.Вид()).Выбран()=1 Тогда
          //документ
          Если Метаданные.Документ(Ко.Вид()).РеквизитШапки(Атрибут).Выбран()=1 Тогда
               Ж=Метаданные.Документ(Ко.Вид()).РеквизитШапки(Атрибут);
               Имя=Ж.Представление();
          ИначеЕсли Метаданные.Документ(Ко.Вид()).РеквизитТабличнойЧасти(Атрибут).Выбран()=1 Тогда
               Ж=Метаданные.Документ(Ко.Вид()).РеквизитТабличнойЧасти(Атрибут);
               Имя=Ж.Представление()+" (строка "+Ко.НомерСтроки+")";
          Иначе
               Ж=Метаданные.ОбщийРеквизитДокумента(Атрибут);
               Имя=Ж.Представление();
          КонецЕсли;
     ИначеЕсли Метаданные.Справочник(Ко.Вид()).Выбран()=1 Тогда
          //справочник
          Ж=Метаданные.Справочник(Ко.Вид()).Реквизит(Атрибут);
          Имя=Ж.Представление();
          Если ПустаяСтрока(Имя)=1 Тогда
               Имя=Атрибут;
          КонецЕсли;
     КонецЕсли;
     //форматирование
     Если ТипЗначенияСтр(Знач2)="Строка" Тогда
          Знач1=СокрЛП(Знач1);
          Знач2=СокрЛП(Знач2);
     ИначеЕсли ТипЗначенияСтр(Знач2)="Число" Тогда
          Знач2=Окр(Знач2,Ж.Точность);
     КонецЕсли;
     //проверка
     Если Знач1=Знач2 Тогда
          Возврат(0);
     КонецЕсли;
     //установка значения
     Если ПустоеЗначение(Знач1)=0 Тогда
          Текст=
          "Атрибут: "+Имя+"
          |
          |Старое значение: "+СимволТабуляции+Знач1+"
          |Новое значение: "+СимволТабуляции+Знач2+"
          |
          |Установить новое значение?";
          Если Вопрос(Текст,"Да+Нет")="Нет" Тогда
               Возврат(0)
          КонецЕсли;
     КонецЕсли;
     //значение
     Ко.УстановитьАтрибут(Атрибут,Знач2);
     Возврат(1);
КонецФункции
 
					
				 
			 
			
	 
 
Внимание! Если у вас не получилось найти нужную информацию, используйте 
рубрикатор  или воспользуйтесь 
поиском книги  по  программированию  исходники  компоненты  шаблоны  сайтов  C++  PHP  Delphi  скачать