COM-подключение к базе 7.7 из .NET, .NET Core Инсталяция:> dotnet add package sabatex.V1C77
или добавить через NUGET пакет sabatex.V1C77.
Добавить пространство имен: using sabatex.V1C77;
пример использованя: ---C#
static void Main(string[] args) { // создаём строку соединения var connection = new sabatex.V1C77.Models.Connection { DataBasePath = @"C:\demo\1SBUKRD", // путь к базе PlatformType = sabatex.V1C77.Models.EPlatform1C.V77M, // платформа 1С77 UserName = "Админов", // имя пользователя UserPass = "" // пароль или пустая строка }; // соединяемся с 1С77 // using (var _1c77 = sabatex.V1C77.COMObject1C77.CreateConnection(connection)) { // перебор всего справочника Контрагенты var contr = _1c77.GlobalContext.CreateObject("Справочник.Контрагенты"); if (contr.Method<double>("ВыбратьЭлементы") == 1) { while (contr.Method<double>("ПолучитьЭлемент")==1) { if (contr.Method<double>("ЭтоГруппа") == 1) continue; var name = contr.GetProperty<string>("Наименование"); Console.WriteLine(name); } } } } [/pre] соответствие типов данных 1С7.7 и C#
строка - string число - doubl дата - DataTime остальное - V1C77COMObject
возможно использовать bool для замены double(0- false;1 - true) тогда выражение сократится к if (contr.Method("ВыбратьЭлементы"))
Категория:
OLE, ActiveX Как загрузить данные из Access в 1С ? Загружаем данные из Access в 1С
Код 1C v 8.х Файл = "C:\files\demo.mdb" ;
СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Файл + ";"" " ;
Connection = Новый COMОбъект( "ADODB.Connection" ) ;
Попытка
Connection. Open( СтрокаПодключения) ;
Исключение
Сообщить( ОписаниеОшибки( ) ) ;
Возврат ;
КонецПопытки ;
Command = Новый COMОбъект( "ADODB.Command" ) ;
Command. ActiveConnection = Connection;
Command. CommandText = "S_elect * FROM Table1" ;
Command. CommandType = 1 ;
RecordSet = Новый COMОбъект( "ADODB.RecordSet" ) ;
RecordSet = Command. Execute( ) ;
стр = "" ;
Пока RecordSet. EOF( ) = 0 Цикл
для н= 0 по Recordset. Fields. Count - 1 цикл
стр = стр + " " + Recordset. Fields( н) . Value;
КонецЦикла ;
Сообщить( стр) ;
стр = "" ;
RecordSet. MoveNext( ) ;
КонецЦикла ;
RecordSet. Close( ) ;
Connection. Close( ) ;
Код 1C v 7.x Акцесс = СоздатьОбъект( "ADODB.CONNECTION" ) ;
Попытка
СтрокаПодключения= "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mybase.mdb;Uid=Admin;Pwd=" ;
Акцесс. Open( СтрокаПодключения) ;
Исключение
Сообщить( "Все плохо:" + ОписаниеОшибки( ) ) ;
Возврат ;
КонецПопытки ;
Команда = СоздатьОбъект( "ADODB.Command" ) ;
Команда. ActiveConnection= Акцесс;
ТекстСелект = "S_elect * FROM tblCustoms" ;
НаборЗаписей = СоздатьОбъект( "ADODB.RecordSet" ) ;
Команда. CommandText= ТекстСелект;
Попытка
НаборЗаписей= Команда. Execute;
Исключение
Сообщить( "Обломись:" + ОписаниеОшибки( ) ) ;
КонецПопытки ;
Попытка
НаборЗаписей. MoveFirst( ) ;
Исключение
НаборЗаписей. Close( ) ;
Возврат ;
КонецПопытки ;
Пока НаборЗаписей. EOF( ) = 0 Цикл
ИНН = НаборЗаписей. Fields( "INN" ) . Value;
НаборЗаписей. MoveNext( ) ;
КонецЦикла ;
НаборЗаписей. Close( ) ;
СтрокаПодключения= "Driver= Microsoft Access Driver (*.mdb)};systemDB=C:\wg.mdw;Dbq=C:\mybase.mdb;Uid=Admin;Pwd=" ;
Работа с ACCESS из 1С через DAO
Код 1C v 7.x Процедура Выполнить()
Спр = СоздатьОбъект( "Справочник.ТоварыВПрайсе" ) ;
Спр. ИспользоватьВладельца( ФасВладелец) ;
dbe = СоздатьОбъект( "dao.DBEngine.36" ) ;
wksp = dbe. Workspaces( 0 ) ;
db = 0 ;
Если ФС. СуществуетФайл( КаталогИБ( ) + "Pric_list.mdb" ) = 0 Тогда
db = wksp. CreateDataBase( КаталогИБ( ) + "Pric_list.mdb" , ";LANGID=0x0419;Cp=1251;Country=0" ) ;
db. Execute( "Create table [" + Строка( фасВладелец) + "]
|(Rec_ind integer,
|Код text,
|Артикул text,
|Цена integer,
|Товар text,
|Единица text,
|Val text);"
) ;
db. Execute( "Create index Rec_ind on [" + Строка( фасВладелец) + "] (Rec_ind);" ) ;
Иначе
db= wksp. OpenDataBase( КаталогИБ( ) + "Pric_list.mdb" ) ;
Попытка
rs = db. OpenRecordset( Строка( фасВладелец) ) ;
Исключение
Сообщить( "Создается новая таблица" ) ;
КонецПопытки ;
Если ПустоеЗначение( rs) = 1 Тогда
db. Execute( "Create table [" + Строка( фасВладелец) + "]
|(Rec_ind integer,
|Код text,
|Артикул text,
|Цена integer,
|Товар text,
|Единица text,
|Val text);"
) ;
db. Execute( "Create index Rec_ind on [" + Строка( фасВладелец) + "] (Rec_ind);" ) ;
КонецЕсли ;
db. Execute( "Delete * From [" + Строка( фасВладелец) + "];" ) ;
КонецЕсли ;
rs = db. OpenRecordset( Строка( фасВладелец) ) ;
Y = 1 ;
Спр. ВыбратьЭлементы( ) ;
Пока Спр. ПолучитьЭлемент( ) = 1 Цикл
лсЕдиницы = "" ;
Если Спр. асТовар. апТип= Перечисление. ТипТовара. Услуга Тогда
лсЕдиницы = "" ;
ИначеЕсли Спр. асТовар. апТип= Перечисление. ТипТовара. Весовой Тогда
лсЕдиницы = "г" ;
ИначеЕсли Спр. асТовар. апТип= Перечисление. ТипТовара. Штучный Тогда
лсЕдиницы = "шт." ;
КонецЕсли ;
Если Спр. ЭтоГруппа( ) = 0 Тогда
rs. AddNew( ) ;
rs. Rec_ind = Y;
rs. Код= Спр. асТовар. ПолныйКод( ) ;
rs. Артикул = Спр. асТовар. сАртикул;
rs. Цена = Спр. чЦена;
rs. Товар= Спр. асТовар. сПолнНаименование;
rs. Единица = лсЕдиницы;
rs. Val = Спр. асВалюта. Код;
rs. Update( ) ;
Y= Y+ 1 ;
КонецЕсли ;
КонецЦикла ;
db. Close( ) ;
Сообщить( "Выгрузка завершена" ) ;
КонецПроцедуры
Код 1C v 7.x
Процедура ACCESS()
dbe= CreateObject( "DAO.DBEngine.36" ) ;
wksp= dbe. Workspaces( 0 ) ;
db= 0 ;
Если ФС. СуществуетФайл( КаталогПользователя( ) + "sr.mdb" ) = 0 Тогда
db= wksp. CreateDataBase( КаталогПользователя( ) + "mars_sr.mdb" , ";LANGID=0x0419;CP=1251;COUNTRY=0" ) ;
db. Execute( "CREATE TABLE BANKS
|(REC_IND INTEGER,
|BANKCODE INTEGER,
|BANKNAME TEXT ,
|ModifiedFlg BIT,
|ChangeSeqFlg BIT);"
) ;
db. Execute( "CREATE INDEX REC_IND ON BANKS (REC_IND);" ) ;
Иначе
db= wksp. OpenDataBase( КаталогПользователя( ) + "sr.mdb" ) ;
db. Execute( "DELETE * FROM BANKS;" ) ;
КонецЕсли ;
rs= db. OpenRecordset( "BANKS" ) ;
rs. AddNew( ) ;
rs. REC_IND = "1" ;
rs. BANKCODE = "34" ;
rs. BANKNAME = "Инвест" ;
rs. ModifiedFlg = "1" ;
rs. Update( ) ;
db. Close( ) ;
КонецПроцедуры
Категория:
Работа с Microsoft Office и OpenOffice Фильтрация иерархического справочника по какому-либо условию в форме списка Есть ли в 8.х аналог ИспользоватьСписокЭлементов?
В динамических списках документов, справочников и т.д. может быть программно установлен отбор по полю Ссылка с указанием в качестве вида сравнения вхождения в список значений. Это позволяет отображать в списке только определенные объекты.
Однако эта возможность может иметь только ограниченное применение, так как динамический список имеет достаточно большое количество универсальных возможностей (установка отбора пользователем, переходы по уровням в иерархических списках и т.д.) и совмещение в прикладных решениях этих механизмов с отбором по конкретным значениям ссылок достаточно сложно реализуется.
В большинстве случаев, если необходимо обеспечить отображение в списке специально отобранного перечня объектов, можно рекомендовать использовать другие возможности (например, выборку данных запросом и отображение в форме с помощью таблицы значений или табличного документа). При этом система обеспечивает возможность полноценного взаимодействия с такими формами других системных механизмов.
Код 1C v 8.х Запрос = Новый Запрос( ) ;
Запрос. Текст = " ВЫБРАТЬ
| СпецификацииНоменклатуры.Ссылка
|ИЗ
| Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры
|ГДЕ
| СпецификацииНоменклатуры.Владелец.Ссылка = &НоменклатураСсылка
| И СпецификацииНоменклатуры.Организация В ИЕРАРХИИ (&Организация)" ;
Запрос. УстановитьПараметр( "НоменклатураСсылка" , ГотоваяПродукция) ;
Запрос. УстановитьПараметр( "Организация" , Организация) ;
СписокСпецификаций = Запрос. Выполнить( ) . Выгрузить( ) . ВыгрузитьКолонку( "Ссылка" ) ;
ФормаВыбора = Справочники. СпецификацииНоменклатуры. ПолучитьФормуВыбора( , Элемент, Элемент) ;
ЭлементОтбора = ФормаВыбора. СправочникСписок. Отбор. Ссылка;
ЭлементОтбора. ВидСравнения = ВидСравнения. ВСписке;
ЭлементОтбора. Значение = СписокСпецификаций;
ЭлементОтбора. Использование = Истина ;
ФормаВыбора. ЭлементыФормы. СправочникСписок. НастройкаОтбора. Ссылка. Доступность = Ложь ;
ФормаВыбора. Открыть( ) ;
Код 1C v 8.2 УП &НаКлиенте
Процедура ПоУмолчаниюОпцияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь ;
ФормаВыбора = ПолучитьФорму( "Справочник.ОпцииАвтомобилей.Форма.ФормаВыбора" ) ;
ФормаВыбора. Открыть( ) ;
ЭлементОтбора = ФормаВыбора. Список. Отбор. Элементы. Добавить( Тип( "ЭлементОтбораКомпоновкиДанных" ) ) ;
ЭлементОтбора. ЛевоеЗначение = Новый ПолеКомпоновкиДанных( "Ссылка" ) ;
ЭлементОтбора. ВидСравнения = ВидСравненияКомпоновкиДанных. ВСписке;
ЭлементОтбора. ПравоеЗначение = СписокОпций;
ЭлементОтбора. Использование = Истина ;
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СписокОпций. ЗагрузитьЗначения( Объект. Владелец. ОпцииМодели. Выгрузить( ) . ВыгрузитьКолонку( "Опция" ) ) ;
КонецПроцедуры
Для 7.7 используем метод ИспользоватьСписокЭлементов
Автор:
Antoska
Для решения данной задачи я решил воспользоваться методом формы списка "ИспользоватьСписокЭлементов(<СписокЗначений>)", так как использование процедуры "ОбработкаПодбора()" требует наличия реквизита справочника для отбора, а это мне не очень подходит. Вот как я реализовал этот алгоритм (код из модуля формы списка справочника):
Код 1C v 7.x Функция СоответствуетУсловиямФильтра(ЭлементСправочника)
Если ПустоеЗначение( ЭлементСправочника) = 0 Тогда
Если Регистр. ПартииТоваров. СводныйОстаток( "" , ЭлементСправочника. ТекущийЭлемент( ) , , , , , "ОстатокТовара" ) < > 0 Тогда
Возврат 1 ;
КонецЕсли ;
КонецЕсли ;
Возврат 0 ;
КонецФункции
Процедура УстановитьФильтр(Знач Группа="" , Знач Иерархия="" )
Если Фильтр = 1 Тогда
Группа = ? ( Группа= "" , ТекущийЭлемент( ) . Родитель, Группа) ;
Иерархия = ? ( Иерархия= "" , ИерархическийСписок( ) , Иерархия) ;
СписокФильтра = СоздатьОбъект( "СписокЗначений" ) ;
Спр = СоздатьОбъект( "Справочник.Номенклатура" ) ;
Если ПустоеЗначение( Группа) = 0 Тогда
Спр. ИспользоватьРодителя( Группа) ;
КонецЕсли ;
Спр. ВключатьПодчиненные( 0 ) ;
Спр. ВыбратьЭлементы( Иерархия) ;
Пока Спр. ПолучитьЭлемент( ) = 1 Цикл
Если Спр. ЭтоГруппа( ) = 1 Тогда
СписокФильтра. ДобавитьЗначение( Спр. ТекущийЭлемент( ) ) ;
Продолжить;
КонецЕсли ;
Если СоответствуетУсловиямФильтра( Спр. ТекущийЭлемент( ) ) = 1 Тогда
СписокФильтра. ДобавитьЗначение( Спр. ТекущийЭлемент( ) ) ;
КонецЕсли ;
КонецЦикла ;
ИспользоватьСписокЭлементов( СписокФильтра) ;
Иначе
ИспользоватьСписокЭлементов( ) ;
КонецЕсли ;
КонецПроцедуры
Процедура ПриВыбореРодителя(Элемент)
УстановитьФильтр( Элемент)
КонецПроцедуры
Процедура ПриСменеИерархии(Способ)
УстановитьФильтр( , Способ)
КонецПроцедуры
Функцией "СоответствуетУсловиямФильтра(ЭлементСправочника)" можно задавать любые условия фильтрации списка опираясь на передаваемый ей элемент справочника.
Скорость работы приемлема, но можно попробовать реализовать и через запрос...
Категория:
Справочники Функция выгружает справочник в таблицу значений Пример выгрузки(помещения) справочника в Таблицу Значений (ТЗ):
Код 1C v 7.x
Функция СправочникВТЗ(ВидСправочника, ДобавлятьЭлементыСправочника = 0,ИмяРеквизита = 0, ЗначениеРеквизита = 0, ЭлементВладелец = 0, ЭлементРодитель = 0, ВключатьПодчиненные = 1, Иерархия = 1, ВОбратномПорядке = 0, ВключатьГруппы = 0) Экспорт
ТаблицаСпр = СоздатьОбъект( "ТаблицаЗначений" ) ;
мдСпр = Метаданные. Справочник( ВидСправочника) ;
ВсегоРеквизитовСпр = мдСпр. Реквизит( ) ;
Для индРекв = 1 по ВсегоРеквизитовСпр Цикл
Вид = мдСпр. Реквизит( индРекв) . Вид;
ТаблицаСпр. НоваяКолонка( мдСпр. Реквизит( индРекв) . Идентификатор, мдСпр. Реквизит( индРекв) . Тип + ? ( ПустоеЗначение( Вид) = 0 , "." + Вид, "" ) , мдСпр. Реквизит( индРекв) . Длина, мдСпр. Реквизит( индРекв) . Точность) ;
КонецЦикла ;
ТаблицаСпр. НоваяКолонка( "Код" , ? ( мдСпр. ТипКода = "Текстовый" , "Строка" , "Число" ) , мдСпр. ДлинаКода) ;
ТаблицаСпр. НоваяКолонка( "Наименование" , "Строка" , мдСпр. ДлинаНаименования) ;
Если ДобавлятьЭлементыСправочника = 1 тогда
ТаблицаСпр. НоваяКолонка( "Элемент" , "Справочник." + ВидСправочника) ;
КонецЕсли ;
Спр = СоздатьОбъект( "Справочник." + ВидСправочника) ;
Если ЭлементВладелец < > 0 тогда
Спр. ИспользоватьВладельца( ЭлементВладелец) ;
КонецЕсли ;
Если ЭлементРодитель < > 0 тогда
Спр. ИспользоватьРодителя( ЭлементРодитель) ;
КонецЕсли ;
Спр. ОбратныйПорядок( ВОбратномПорядке) ;
Спр. ВключатьПодчиненные( ВключатьПодчиненные) ;
Если ИмяРеквизита = 0 тогда
Спр. ВыбратьЭлементы( Иерархия) ;
Иначе
Спр. ВыбратьЭлементыПоРеквизиту( ИмяРеквизита, ЗначениеРеквизита, Иерархия, ВключатьГруппы) ;
КонецЕсли ;
Пока Спр. ПолучитьЭлемент( ) = 1 Цикл
ТаблицаСпр. НоваяСтрока( ) ;
ТекущаяСтрока = ТаблицаСпр. НомерСтроки;
Для НомерКолонки= 1 по ВсегоРеквизитовСпр Цикл
ТаблицаСпр. УстановитьЗначение( ТекущаяСтрока, НомерКолонки, Спр. ПолучитьАтрибут( мдСпр. Реквизит( НомерКолонки) ) ) ;
КонецЦикла ;
ТаблицаСпр. Код = Спр. Код;
ТаблицаСпр. Наименование = Спр. Наименование;
Если ДобавлятьЭлементыСправочника = 1 тогда
ТаблицаСпр. УстановитьЗначение( ТекущаяСтрока, "Элемент" , Спр. ТекущийЭлемент( ) ) ;
КонецЕсли ;
КонецЦикла ;
Возврат ТаблицаСпр;
КонецФункции
Новинки игровых автоматов с возможностью играть на
бездепозитный бонус за регистрацию в онлайн казино на деньги.
Категория:
Справочники Пример переноса данных из 1С 7.7 в 8.1 посредством XML файла Код 1C v 7.x xmldoc = CreateObject( "Msxml2.DOMDocument" ) ;
xmlDoc. loadXML( "<root/>" ) ;
nodeRoot = xmlDoc. documentElement;
расходы = xmlDoc. createElement( "СправочникРасходы" ) ;
Спр = Создатьобъект( "Справочник.Расходы" ) ;
Спр. ВыбратьЭлементы( ) ;
Пока Спр. ПолучитьЭлемент( ) = 1 цикл
расход = xmlDoc. createElement( "Расход" ) ;
расход. setAttribute( "Код" , Спр. Код) ;
расход. setAttribute( "Наименование" , Спр. Наименование) ;
расход. setAttribute( "Родитель" , Строка( Спр. Родитель) ) ;
расход. setAttribute( "Цена" , Строка( Спр. Цена. Получить( ТекущаяДата( ) ) ) ) ;
расход. setAttribute( "Количество" , Строка( Спр. Количество) ) ;
расход. setAttribute( "ЭтоГруппа" , Строка( Спр. ЭтоГруппа( ) ) ) ;
расходы. appendChild( расход) ;
КонецЦикла ;
nodeRoot. appendChild( расходы) ;
ДвижениеСчетов = xmlDoc. createElement( "ДвижениеСчетов" ) ;
рег = СоздатьОбъект( "Регистр.Счет" ) ;
рег. ВыбратьДвижения( ) ;
Пока Рег. ПолучитьДвижение( ) = 1 цикл
Движение = xmlDoc. createElement( "Движение" ) ;
Движение. setAttribute( "Приход" , Строка( Рег. Приход) ) ;
Движение. setAttribute( "Дата" , Строка( Рег. ТекущийДокумент( ) . ДатаДок) ) ;
Движение. setAttribute( "Описатель" , Строка( Рег. Описатель) ) ;
Движение. setAttribute( "СтатьяРасходов" , Строка( Рег. СтатьяРасходов) ) ;
Движение. setAttribute( "СтатьяПоступлений" , Строка( Рег. СтатьяПоступлений) ) ;
Движение. setAttribute( "Кто" , Строка( Рег. Кто) ) ;
Движение. setAttribute( "Кому" , Строка( Рег. Кому) ) ;
Движение. setAttribute( "Остаток" , Строка( Рег. Остаток) ) ;
Движение. setAttribute( "Количество" , Строка( Рег. Количество) ) ;
ДвижениеСчетов. appendChild( Движение) ;
КонецЦикла ;
nodeRoot. appendChild( ДвижениеСчетов) ;
xmlDoc. save( "C:\budjet.xml" ) ;
Код 1C v 8.х
Функция Кошель(Кош)
стр = ТП2 . Найти( Кош, "Описатель" ) ;
Возврат Стр. Счет;
КонецФункции
Функция Вал(Кош)
стр = ТП2 . Найти( Кош, "Описатель" ) ;
Возврат Стр. Валюта;
КонецФункции
Функция Дата1С(дат)
Возврат "20" + сред( дат, 7 , 2 ) + сред( дат, 4 , 2 ) + лев( дат, 2 ) ;
КонецФункции
Процедура Загрузка(Элемент)
xmlDoc = Новый COMОбъект( "MSXML2.DOMDocument" ) ;
xmlDoc. load( "C:\budjet.xml" ) ;
nodeRoot = xmlDoc. documentElement;
Для каждого nod из nodeRoot. childNodes цикл
Если nod. nodeName = "СправочникРасходы" тогда
Сообщить( "нашли СправочникРасходы" ) ;
ТЗ = Новый ТаблицаЗначений;
ТЗ. Колонки. Добавить( "Код" ) ;
ТЗ. Колонки. Добавить( "Наименование" ) ;
ТЗ. Колонки. Добавить( "Родитель" ) ;
ТЗ. Колонки. Добавить( "Цена" ) ;
ТЗ. Колонки. Добавить( "Количество" ) ;
ТЗ. Колонки. Добавить( "ЭтоГруппа" ) ;
Для Каждого Расход из nod. childNodes Цикл
Строка = ТЗ. Добавить( ) ;
Строка. Код = Расход. getAttribute( "Код" ) ;
Строка. Наименование = Расход. getAttribute( "Наименование" ) ;
Строка. Родитель = Расход. getAttribute( "Родитель" ) ;
Строка. Цена = Число( Расход. getAttribute( "Цена" ) ) ;
Строка. Количество = Число( Расход. getAttribute( "Количество" ) ) ;
Строка. ЭтоГруппа = ? ( Расход. getAttribute( "ЭтоГруппа" ) = "1" , True, Ложь ) ;
КонецЦикла ;
Для Каждого Стр из ТЗ Цикл
Родитель = Справочники. СтатьиЗатрат. НайтиПоНаименованию( Стр. Родитель, истина ) ;
Справ = Справочники. СтатьиЗатрат. НайтиПоНаименованию( Стр. Наименование, истина ) ;
Если Справ = Справочники. СтатьиЗатрат. ПустаяСсылка( ) тогда
Если Стр. ЭтоГруппа тогда
Справ = Справочники. СтатьиЗатрат. СоздатьГруппу( ) ;
Справ. Код = Стр. Код;
Справ. Наименование = Стр. Наименование;
Справ. Родитель = Родитель;
Справ. Записать( ) ;
Иначе
Справ = Справочники. СтатьиЗатрат. СоздатьЭлемент( ) ;
Справ. Код = Стр. Код;
Справ. Наименование = Стр. Наименование;
Справ. Родитель = Родитель;
Справ. Цена = Стр. Цена;
Справ. Количество = Стр. Количество;
Справ. Записать( ) ;
КонецЕсли ;
Иначе
КонецЕсли ;
КонецЦикла ;
ИначеЕсли nod. nodeName = "ДвижениеСчетов" тогда
Сообщить( "нашли движения счетов" ) ;
ТЗ = Новый ТаблицаЗначений;
ТЗ. Колонки. Добавить( "Приход" ) ;
ТЗ. Колонки. Добавить( "Дата" ) ;
ТЗ. Колонки. Добавить( "Описатель" ) ;
ТЗ. Колонки. Добавить( "Статья" ) ;
ТЗ. Колонки. Добавить( "Цена" ) ;
ТЗ. Колонки. Добавить( "Количество" ) ;
Для каждого движ из nod. childNodes цикл
Строка = ТЗ. Добавить( ) ;
Строка. Приход = ? ( движ. getAttribute( "Приход" ) = "1" , True, Ложь ) ;
Строка. Дата = Дата( Дата1 С( движ. getAttribute( "Дата" ) ) ) ;
Строка. Описатель = движ. getAttribute( "Описатель" ) ;
Строка. Статья = Справочники. СтатьиЗатрат. НайтиПоНаименованию( движ. getAttribute( ? ( Строка. Приход, "СтатьяПоступлений" , "СтатьяРасходов" ) ) , истина ) ;
Строка. Цена = Число( движ. getAttribute( "Остаток" ) ) ;
Строка. Количество = Число( движ. getAttribute( "Количество" ) ) ;
КонецЦикла ;
ТЗ. ВыбратьСтроку( ) ;
Доки = Новый ТаблицаЗначений;
Доки. Колонки. Добавить( "Док" ) ;
Доки. Колонки. Добавить( "Дата" ) ;
Доки. Колонки. Добавить( "КошелекС" ) ;
Доки. Колонки. Добавить( "КошелекНа" ) ;
Доки. Колонки. Добавить( "Статья" ) ;
Доки. Колонки. Добавить( "ВалютаС" ) ;
Доки. Колонки. Добавить( "ВалютаНа" ) ;
Доки. Колонки. Добавить( "ЦенаС" ) ;
Доки. Колонки. Добавить( "ЦенаНа" ) ;
Доки. Колонки. Добавить( "Количество" ) ;
УжеЕстьДок= Ложь ;
док= 0 ;
Для Каждого Стр Из ТЗ цикл
Если Стр. Приход Тогда
Если УжеЕстьДок тогда
Док. КошелекНа = Кошель( Стр. Описатель) ;
Док. ВалютаНа = Вал( Стр. Описатель) ;
Док. ЦенаНа = Стр. Цена;
Док. Количество = Стр. Количество;
Док. Статья = Стр. Статья;
УжеЕстьДок= Ложь ;
Иначе
Док = Доки. Добавить( ) ;
Док. КошелекНа = Кошель( Стр. Описатель) ;
Док. ВалютаНа = Вал( Стр. Описатель) ;
Док. ЦенаНа = Стр. Цена;
Док. Количество = Стр. Количество;
Док. Статья = Стр. Статья;
Док. Док = "ПоступлениеСредств" ;
КонецЕсли ;
Иначе
Док = Доки. Добавить( ) ;
Док. КошелекС = Кошель( Стр. Описатель) ;
Док. ВалютаС = Вал( Стр. Описатель) ;
Док. ЦенаС = Стр. Цена;
Док. Количество = Стр. Количество;
Док. Статья = Стр. Статья;
Если СокрЛП( Стр. Статья. Наименование) = "Обмен валюты" тогда
Док. Док = "ОбменВалюты" ;
УжеЕстьДок= истина ;
ИначеЕсли СокрЛП( Стр. Статья. Наименование) = "Перевод средств" тогда
Док. Док = "ПереводСредств" ;
УжеЕстьДок= истина ;
Иначе
Док. Док = "РасходСредств" ;
УжеЕстьДок= Ложь ;
КонецЕсли ;
КонецЕсли ;
Док. Дата = Стр. Дата;
КонецЦикла ;
Доки. ВыбратьСтроку( ) ;
КонецЕсли ;
КонецЦикла ;
Для Каждого Док из Доки Цикл
Если Док. Док = "ПоступлениеСредств" тогда
Докум = Документы. ПоступлениеСредств. СоздатьДокумент( ) ;
Докум. Дата = Док. Дата;
Докум. Кошелек = Док. КошелекНа;
Докум. Валюта = Док. ВалютаНа;
Докум. Сумма = Док. ЦенаНа;
Докум. Статья = Док. Статья;
Докум. Записать( РежимЗаписиДокумента. Проведение) ;
ИначеЕсли Док. Док = "ПереводСредств" тогда
Докум = Документы. ПеремещениеСредств. СоздатьДокумент( ) ;
Докум. Дата = Док. Дата;
Докум. КошелекКуда = Док. КошелекНа;
Докум. КошелекОтКуда = Док. КошелекС;
Докум. Валюта = Док. ВалютаНа;
Докум. Сумма = Док. ЦенаНа;
Докум. Записать( РежимЗаписиДокумента. Проведение) ;
ИначеЕсли Док. Док = "ОбменВалюты" тогда
Докум = Документы. ПеремещениеСредств. СоздатьДокумент( ) ;
Докум. Дата = Док. Дата;
Докум. КошелекКуда = Док. КошелекНа;
Докум. КошелекОтКуда = Док. КошелекС;
Докум. Валюта = Док. ВалютаС;
Докум. Сумма = Док. ЦенаС;
Докум. Записать( РежимЗаписиДокумента. Проведение) ;
Докум = Документы. ОбменВалюты. СоздатьДокумент( ) ;
Докум. Дата = Док. Дата;
Докум. Кошелек = Док. КошелекНа;
Докум. ВалютаС = Док. ВалютаС;
Докум. ВалютаНа = Док. ВалютаНа;
Докум. СуммаС = Док. ЦенаС;
Докум. СуммаНа = Док. ЦенаНа;
Докум. Курс = Докум. СуммаС / Докум. СуммаНа;
Докум. Переключатель = 1 ;
Докум. Записать( РежимЗаписиДокумента. Проведение) ;
Иначе
Докум = Документы. РасходСредств. СоздатьДокумент( ) ;
Докум. Дата = Док. Дата;
Докум. Кошелек = Док. КошелекС;
Докум. Валюта = Док. ВалютаС;
тч = Докум. Затраты. Добавить( ) ;
тч. Сумма = Док. ЦенаС;
тч. Статья = Док. Статья;
тч. Цена = Док. ЦенаС;
тч. Количество = Док. Количество;
Докум. Записать( РежимЗаписиДокумента. Проведение) ;
КонецЕсли ;
КонецЦикла ;
КонецПроцедуры
Процедура ЗаполнитьТЗДанными(Элемент)
xmlDoc = Новый COMОбъект( "MSXML2.DOMDocument" ) ;
xmlDoc. load( "C:\budjet.xml" ) ;
nodeRoot = xmlDoc. documentElement;
Для каждого nod из nodeRoot. childNodes цикл
Если nod. nodeName = "ДвижениеСчетов" тогда
Сообщить( "нашли движения счетов" ) ;
ТП1 = Новый ТаблицаЗначений;
ТП1 . Колонки. Добавить( "Описатель" ) ;
Типы = Новый Массив( 1 ) ; Типы[0 ] = Тип( "СправочникСсылка.Кошельки" ) ;
Тип = Новый ОписаниеТипов( Типы) ;
ТП1 . Колонки. Добавить( "Счет" , Тип) ;
Типы[0 ] = Тип( "СправочникСсылка.Валюты" ) ;
Тип = Новый ОписаниеТипов( Типы) ;
ТП1 . Колонки. Добавить( "Валюта" , Тип) ;
Для каждого движ из nod. childNodes цикл
Описатель = движ. getAttribute( "Описатель" ) ;
если ТП1 . Найти( Описатель, "Описатель" ) = Неопределено тогда
стр = ТП1 . Добавить( ) ;
Стр. Описатель = Описатель;
КонецЕсли ;
КонецЦикла ;
ТП2 = ТП1 ;
КонецЕсли ;
КонецЦикла ;
КонецПроцедуры
Категория:
JSON, XML, TXT, CSV, DBF Как заполнить диаграмму данными? Код 1C v 8.х Диаграмма = ЭлементыФормы. Диаграмма;
Диаграмма. КоличествоСерий = 0 ;
Диаграмма. КоличествоТочек = 0 ;
Диаграмма. МаксимумСерий = МаксимумСерий. Ограничено;
Диаграмма. МаксимумСерийКоличество = 7 ;
Диаграмма. ВидПодписей = ВидПодписейКДиаграмме. Процент;
Диаграмма. ОбластьЗаголовка. Текст = "Обороты номенклатуры" ;
Запрос = Новый Запрос; Запрос. Текст = "ВЫБРАТЬ
| ПродажиКомпанииОбороты.Номенклатура,
| СУММА(ПродажиКомпанииОбороты.КоличествоОборот) КАК КоличествоОборот
|ИЗ
| РегистрНакопления.Продажи.Обороты(, , , ) КАК ПродажиКомпанииОбороты
|СГРУППИРОВАТЬ ПО
| ПродажиКомпанииОбороты.Номенклатура" ;
Результат = Запрос. Выполнить( ) ;
Диаграмма. Обновление = Ложь ;
Диаграмма. КоличествоТочек = 1 ;
Диаграмма. Точки[0 ]. Текст = "Количество" ;
Выборка = Результат. Выбрать( ) ;
Пока Выборка. Следующий( ) Цикл
КоличествоСерий = Диаграмма. Серии. Количество( ) ;
Диаграмма. КоличествоСерий = КоличествоСерий + 1 ;
Диаграмма. Серии[КоличествоСерий]. Текст = Выборка. Номенклатура;
Диаграмма. УстановитьЗначение( 0 , КоличествоСерий, Выборка. КоличествоОборот) ;
КонецЦикла ;
Диаграмма. Обновление = Истина ;
Код 1C v 7.x
Процедура ПостроитьДиаграмму(Диагр)
КолСерий= 0 ;
Спр. ВыбратьЭлементы( ) ;
Пока Спр. ПолучитьЭлемент( ) = 1 Цикл
Если Спр. ЭтоГруппа( ) = 0 Тогда
КолСерий= КолСерий+ 1 ;
КонецЕсли ;
КонецЦикла ;
Диагр. КоличествоСерий( КолСерий) ;
Диагр. КоличествоТочек( 1 ) ;
БИ= СоздатьОбъект( "БухгалтерскиеИтоги" ) ;
БИ. Рассчитать( ДатаОтчета, ДатаОтчета) ;
номер= 1 ;
Спр. ВыбратьЭлементы( ) ;
Пока Спр. ПолучитьЭлемент( ) = 1 Цикл
Если Спр. ЭтоГруппа( ) = 0 Тогда
Диагр. УстановитьИмяСерии( Номер, Спр. Наименование) ;
Диагр. УстановитьЗначение( 1 , номер, БИ. СКД( "10" , "К" , , Спр. ТекущийЭлемент( ) ) ) ;
номер= номер+ 1 ;
КонецЕсли ;
КонецЦикла ;
КонецПроцедуры
Код 1C v 7.x
Процедура СформироватьДиаграмму(Диаграмма1)
Диаграмма1 . Обновление( 0 ) ;
Диаграмма1 . Заголовок = "Поступления от покупателей" ;
Диаграмма1 . УстановитьИмяСерии( 1 , "Рубли" ) ;
Диаграмма1 . АвтоУстановкаИменТочек( 1 ) ;
БухИт = СоздатьОбъект( "БухгалтерскиеИтоги" ) ;
Бухит. ВыполнитьЗапрос( НачКвартала( РабочаяДата( ) ) ,
КонКвартала( РабочаяДата( ) ) , "60.1" , , , 1 , "Неделя" , "С" ) ;
БухИт. ВыбратьПериоды( ) ;
А = 1 ;
Пока БухИт. ПолучитьПериод( ) = 1 Цикл
Диаграмма1 . УстановитьЗначение( А, 1 , БухИт. ДО( ) ) ;
А = А + 1 ;
КонецЦикла ;
Диаграмма1 . Обновление( 1 ) ;
КонецПроцедуры
Категория:
Диаграмма Вывести все помеченные на удаление элементы справочника Код 1C v 8.х Запрос= новый Запрос;
Запрос. Текст= "
|ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ПометкаУдаления = ИСТИНА
|" ;
Результат = Запрос. Выполнить( ) ;
Результат = Результат. Выбрать( ) ;
Пока Результат. Следующий( ) Цикл
КонецЦикла ;
Код 1C v 7.x Спр= СоздатьОбъект( "Справочник.Контрагенты" ) ;
спр. выбратьЭлементы( ) ;
Пока спр. ПолучитьЭлемент( ) = 1 Цикл
Если спр. ПометкаУдаления( ) = 1 тогда
сообщить( спр. наименование) ;
конецЕсли ;
КонецЦикла ;
Категория:
Справочники Вывести справочник в таблицу, табличный документ Код 1C v 8.х
Запрос= новый Запрос;
Запрос. Текст= "
|ВЫБРАТЬ
| Номенклатура.*
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|" ;
РезультатЗ = Запрос. Выполнить( ) ;
ПечатьРезвТаб( ТабДок, РезультатЗ) ;
Функция
ПечатьРезвТаб(ТабДок,РезультатЗ); - [url=/faq/view/209.html]Вывод результата запроса в табличный документ[/url]
Код 1C v 7.x таб= СоздатьОбъект( "Таблица" ) ;
таб. ВывестиСекцию( "Шапка" ) ;
спр= СоздатьОбъект( "Справочник.Контрагенты" ) ;
спр. ВыбратьЭлементы( ) ;
Пока спр. ПолучитьЭлемент( ) = 1 Цикл
Если спр. ЭтоГруппа( ) = 1 Тогда
таб. ВывестиСекцию( "гр" ) ;
иначе
таб. ВывестиСекцию( "эл" ) ;
КонецЕсли ;
КонецЦикла ;
Таб. Опции( 0 , 0 , 1 , 1 ) ;
Таб. ТолькоПросмотр( 1 ) ;
таб. Показать( ) ;
Категория:
Справочники Есть ли у текущего элемента подчиненные Код 1C v 8.х Выборка = Справочники. Номенклатура. Выбрать( , Владелец) ;
Если Выборка. Следующий( ) = Истина Тогда
КонецЕсли ;
Запрос = Новый Запрос;
Запрос. Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| ЕдиницыИзмерения.Ссылка
|ИЗ
| Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
|ГДЕ
| ЕдиницыИзмерения.Владелец = &Владелец" ;
Запрос. УстановитьПараметр( "Владелец" , Владелец) ;
Если НЕ Запрос. Выполнить( ) . Пустой( ) Тогда
КонецЕсли ;
Код 1C v 7.x Спр= СоздатьОбъект( "Справочник.Контрагенты" ) ;
Попытка
дог= СоздатьОбъект( "Справочник.Договоры" ) ;
исключение
Предупреждение( "В конфигурации нет справочника ДОГОВОРЫ" ) ;
возврат ;
конецПопытки ;
Спр. ВыбратьЭлементы( ) ;
Пока спр. ПолучитьЭлемент( ) = 1 Цикл
Если спр. ЭтоГруппа( ) = 1 Тогда
продолжить;
КонецЕсли ;
Сообщить( "Контрагент " + спр. Наименование+ " его договоры:" ) ;
дог. ИспользоватьВладельца( Спр. ТекущийЭлемент( ) ) ;
дог. ВыбратьЭлементы( ) ;
Пока дог. получитьЭлемент( ) = 1 Цикл
сообщить( "----------" + дог. наименование) ;
КонецЦикла ;
КонецЦикла ;
Категория:
Справочники Создать всем подчиненный элемент справочника Код 1C v 7.x
Спр= СоздатьОбъект( "Справочник.Контрагенты" ) ;
Попытка
дог= СоздатьОбъект( "Справочник.Договоры" ) ;
исключение
Предупреждение( "В конфигурации нет справочника ДОГОВОРЫ" ) ;
возврат ;
конецПопытки ;
Спр. ВыбратьЭлементы( ) ;
Пока спр. ПолучитьЭлемент( ) = 1 Цикл
Если спр. ЭтоГруппа( ) = 1 Тогда
продолжить;
КонецЕсли ;
дог. ИспользоватьВладельца( спр. ТекущийЭлемент( ) ) ;
дог. Новый( ) ;
Дог. наименование= "Дополнительный" ;
дог. записать( ) ;
конецЦикла ;
Категория:
Справочники Перебрать, выбрать элементы подчиненного справочника Перебор элементов справочника принадлежащих элементу другого справочника, т.е когда один справочник подчинен другому справочнику.
Код 1C v 8.х
Выборка = Справочники. КонтактныеЛица. Выбрать( , Контрагент) ;
Пока Выборка. Следующий( ) Цикл
ОчереднойПодчиненый = Выборка. Ссылка;
КонецЦикла ;
Запрос = Новый Запрос;
Запрос. Текст = "ВЫБРАТЬ
| КонтактныеЛица.Ссылка
|ИЗ
| Справочник.КонтактныеЛица КАК КонтактныеЛица
|ГДЕ
| КонтактныеЛица.Владелец = &Владелец" ;
Запрос. УстановитьПараметр( "Владелец" , Контрагент) ;
Результат = Запрос. Выполнить( ) ;
Выборка = Результат. Выбрать( ) ;
Пока Выборка. Следующий( ) Цикл
ОчереднойПодчиненый = Выборка. Ссылка;
КонецЦикла ;
Код 1C v 7.x
спр= СоздатьОбъект( "Справочник.Модели" ) ;
спрМарка= СоздатьОбъект( "Справочник.Марки" ) ;
спрМарка. НайтиПоНаименованию( "BMW" ) ;
спр. ИспользоватьВладельца( спрМарка. ТекущийЭлемент( ) ) ;
спр. ВыбратьЭлементы( ) ;
Пока спр. ПолучитьЭлемент( ) = 1 Цикл
Сообщение( спр. ТекущийЭлемент( ) . Наименование) ;
КонецЦикла ;
Спр= СоздатьОбъект( "Справочник.Контрагенты" ) ;
Попытка
дог= СоздатьОбъект( "Справочник.Договоры" ) ;
исключение
Предупреждение( "В конфигурации нет справочника ДОГОВОРЫ" ) ;
возврат ;
конецПопытки ;
Спр. ВыбратьЭлементы( ) ;
Пока спр. ПолучитьЭлемент( ) = 1 Цикл
Если спр. ЭтоГруппа( ) = 1 Тогда
продолжить;
КонецЕсли ;
Сообщить( "Контрагент " + спр. Наименование+ " его договоры:" ) ;
дог. ИспользоватьВладельца( Спр. ТекущийЭлемент( ) ) ;
дог. ВыбратьЭлементы( ) ;
Пока дог. получитьЭлемент( ) = 1 Цикл
сообщить( "----------" + дог. наименование) ;
КонецЦикла ;
КонецЦикла ;
Категория:
Справочники Выбрать, перебрать все элементы из определенной группы В терминах 1С:Предприятия
Группа - это
Родитель
Код 1C v 8.х
Выборка = Справочники. Номенклатура. Выбрать( ПолеВводаРодитель) ;
Пока Выборка. Следующий( ) Цикл
Наименование = Выборка. Наименование;
КонецЦикла ;
Запрос = Новый Запрос( "
|ВЫБРАТЬ
| Ссылка,
| Наименование
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| Родитель = &Родитель
|АВТОУПОРЯДОЧИВАНИЕ" ) ;
Запрос. УстановитьПараметр( "Родитель" , ПолеВводаРодитель) ;
Результат = Запрос. Выполнить( ) . Выбрать( ) ;
Пока Результат. Следующий( ) Цикл
Наименование = Результат. Наименование;
КонецЦикла ;
Выборка= Справочники. Номенклатура. ВыбратьИерархически( ПолеВводаРодитель) ;
Пока Выборка. Следующий( ) Цикл
Наименование = Выборка. Наименование;
КонецЦикла ;
Запрос = Новый Запрос( "
|ВЫБРАТЬ
| Ссылка,
| Наименование
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| Родитель В ИЕРАРХИИ(&Родитель)
|АВТОУПОРЯДОЧИВАНИЕ" ) ;
Запрос. УстановитьПараметр( "Родитель" , ПолеВводаРодитель) ;
Результат = Запрос. Выполнить( ) . Выбрать( ) ;
Пока Результат. Следующий( ) Цикл
Наименование = Результат. Наименование;
КонецЦикла ;
Код 1C v 7.x спр= СоздатьОбъект( "Справочник.Материалы" ) ;
спрГруппа= СоздатьОбъект( "Справочник.Материалы" ) ;
спрГруппа. НайтиПоНаименованию( "Топливо" ) ;
спр. ИспользоватьРодителя( спрГруппа. ТекущийЭлемент( ) ) ;
спр. ВыбратьЭлементы( ) ;
Пока спр. ПолучитьЭлемент( ) = 1 Цикл
Сообщить( спр. ТекущийЭлемент( ) . Наименование) ;
КонецЦикла ;
Категория:
Справочники Перебрать, выбрать элементы справочника Код 1C v 8.х Выборка = Справочники. Сотрудники. Выбрать( ) ;
Пока выборка. Следующий( ) = 1 Цикл
. . .
. . . Сообщить( "Сотрудник " + выборка. Наименование) ;
КонецЦикла ;
Запрос = Новый Запрос( "
|ВЫБРАТЬ
| Ссылка,
| Наименование
|ИЗ
| Справочник.Номенклатура
|АВТОУПОРЯДОЧИВАНИЕ" ) ;
Результат = Запрос. Выполнить( ) . Выбрать( ) ;
Пока Результат. Следующий( ) Цикл
Наименование = Результат. Наименование;
КонецЦикла ;
Код 1C v 7.x
Спр = СоздатьОбъект( "Справочник.Материалы" ) ;
Спр. ВыбратьЭлементы( ) ;
Пока Спр. ПолучитьЭлемент( ) = 1 Цикл
сообщить( "Наименование " + спр. Наименование+ " Код " + спр. код) ;
КонецЦикла ;
Запрос = СоздатьОбъект( "Запрос" ) ;
ТекстЗапроса = "
|Период с Дата1 по Дата2;
|Обрабатывать НеПомеченныеНаУдаление;
|Спр = Справочник.Материалы.ТекущийЭлемент;
|Группировка Спр упорядочить по Спр.Наименование;" ;
Если Запрос. Выполнить( ТекстЗапроса) = 0 Тогда
Предупреждение( "Запрос по элементам справочника не выполнился!" ) ;
Возврат ;
КонецЕсли ;
Категория:
Справочники Помечен ли элемент справочника на удаление Код 1C v 8.х
Пометка = СпрСотр. ПометкаУдаления;
Если Пометка = Истина Тогда
. . . . .
КонецЕсли ;
Код 1C v 7.x
спр= СоздатьОбъект( "Справочник.Материалы" ) ;
спр. ВыбратьЭлементы( ) ;
Пока спр. ПолучитьЭлемент( ) = 1 Цикл
Если пом= 1 Тогда
спр. удалить( 0 ) ;
иначе
спр. СнятьПометкуУдаления( ) ;
КонецЕсли ;
КонецЦикла ;
Предупреждение( "Обработка завершена" ) ;
Категория:
Справочники Выбрать все движения регистра по документу Код 1C v 7.x
Процедура Взаиморасчеты(ВыбКлиент, ДатаНачало, ДатаКонец)
Заг = "Неизвестно." ;
Таб = СоздатьОбъект( "Таблица" ) ;
Клн = СоздатьОбъект( "Справочник.Клиенты" ) ;
Клн. ИспользоватьДату( ДатаКонец) ;
Док = СоздатьОбъект( "Документ" ) ;
Рег = СоздатьОбъект( "Регистр.Взаиморасчеты" ) ;
Рег1 = СоздатьОбъект( "Регистр.Взаиморасчеты" ) ;
Рег. ВременныйРасчет( ) ;
РассчитатьРегистрыНа( ДатаКонец) ;
Если ВыбКлиент. Выбран( ) = 0 Тогда
Заг = "По всем клиентам." ;
ИначеЕсли ВыбКлиент. ЭтоГруппа( ) = 1 Тогда
Клн. ВключатьПодчиненные( ВыбКлиент) ;
Клн. ИспользоватьРодителя( ВыбКлиент) ;
Заг = "По клиентам группы " + ВыбКлиент. Наименование;
Иначе
Предупреждение( "Выберите группу клиентов!" ) ;
Возврат ;
КонецЕсли ;
Таб. ВывестиСекцию( "Отчет" ) ;
Клн. ВыбратьЭлементы( ) ;
Пока Клн. ПолучитьЭлемент( ) > 0 Цикл
Если Клн. ЭтоГруппа( ) = 1 Тогда
Таб. ВывестиСекцию( "Группа" ) ;
Иначе
Рег. Клиент = Клн. ТекущийЭлемент( ) ;
Рег. ОстаткиПолучить( ) ;
Баз_сум = Рег. СуммаБазовая;
Вал_сум = Рег. СуммаВалютная;
Таб. ВывестиСекцию( "Клиент" ) ;
Док. ВыбратьДокументы( ДатаНачало, ДатаКонец) ;
Пока Док. ПолучитьДокумент( ) > 0 Цикл
Если ( Док. Вид( ) = "Перемещение" ) ИЛИ ( Док. Вид( ) = "Счет" ) ИЛИ
( Док. Вид( ) = "Списание" ) ИЛИ
( Док. Вид( ) = "РучноеИзмОстатка" ) Тогда
Продолжить;
КонецЕсли ;
Рег1 . ВыбратьДвиженияДокумента( Док. ТекущийДокумент( ) ) ;
Пока Рег1 . ПолучитьДвижение( ) > 0 Цикл
Если Строка( Рег1 . Клиент. Код) < > Строка( Клн. Код) Тогда
Продолжить;
КонецЕсли ;
Дв_Баз_Сум = Рег1 . СуммаБазовая;
Дв_Вал_Сум = Рег1 . СуммаВалютная;
Если Рег1 . Приход = 1 Тогда
Таб. ВывестиСекцию( "Приход" ) ;
Иначе
Таб. ВывестиСекцию( "Расход" ) ;
КонецЕсли ;
КонецЦикла ;
КонецЦикла ;
КонецЕсли ;
КонецЦикла ;
Таб. ТолькоПросмотр( 1 ) ;
Таб. Опции( 0 , 0 , 4 , 0 ) ;
Таб. Показать( "Взаиморасчеты с клиентами" , "" ) ;
ВыбКлиент = 0 ;
КонецПроцедуры
Категория:
Регистры