Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > 1C v8 предприятие


Автор: Cheshuya 28.12.2006, 13:34
Доброе время суток....
Вы не подскажите открыта ли база 1с????
тоесть можно ли руками просматривать или изменять значения полей базы????

Автор: Naghual 28.12.2006, 13:36
нет.
тем более, если вы задали такой вопрос.

Автор: Cheshuya 28.12.2006, 13:43
я еще не видел и не щупал ничего из 1с .... 
просто переходим на 1с ... с другой (самописной) программы.

Могли бы ВЫ и участники этого топика вкратце дать хорактеристики базы 1с.....
любые сылки на литературу в которой что то говориться про базы 1с....

Заранеее благодарен...

Автор: valex13 29.12.2006, 06:39
Цитата

нет.
тем более, если вы задали такой вопрос.


Чушь! Это почему это? Для 1С v8  SQL база данных - такая же обячная база данных. Пиши в нее что хочешь. Вопрос только как:

Ответ: Пример занесения данных в справочник.


Имеем таблицу со справочником:
Код

CREATE TABLE [_Reference19] (
    [_IDRRef] [binary] (16) NOT NULL ,
    [_Version] [timestamp] NOT NULL ,
    [_Marked] [binary] (1) NOT NULL ,
    [_IsMetadata] [binary] (1) NOT NULL ,
    [_Code] [nchar] (8) COLLATE Cyrillic_General_CI_AS NOT NULL ,
    [_Description] [nvarchar] (100) COLLATE Cyrillic_General_CI_AS NOT NULL ,
     PRIMARY KEY  CLUSTERED 
    (
        [_IDRRef]
    )  ON [PRIMARY] 
) ON [PRIMARY]
GO

Сгенеренную конфигуратором 1С.
Здесь поля _IDRRef, _Version, _Marked, _IsMetadata - служебные. Имеются во всех таблицах. Последние две заполняем нулями - это Пометка и видимо признак для конфигуратора. Второе поле _Version не троаем вообще, т.к. при Insert'е автоматически SQL SErver подставит. Это поле необходимо самой 1С для сортировки в списке, таблице. Поле _IDRRef переводим в int  + инкримент и обратно в binary (16). Смотрим код:

Код

declare @newRef as binary(16)
select Top 1 @newRef = Cast ( Cast(_IDRRef as int) + 1 as binary(16) )  from _Reference19 order by _IDRRef desc

insert into _Reference19 (_IDRRef,_Marked,_IsMetadata,_Code,_Description) values
            (@newRef,0,0,'00000001','Пример инсерта в базу данных!')

Автор: Cheshuya 29.12.2006, 12:31
вопрос то был не в том как создавать .... таблицы ..... (хотя мне занимательно и это)

мне было интересно узнать можно ли после её создания и заполнения данными (таблицы) влезть в неё руками что то наподобия таблиц в IB6 

Автор: Zero 30.12.2006, 21:39
Цитата(valex13 @  29.12.2006,  06:39 Найти цитируемый пост)
нет.
тем более, если вы задали такой вопрос.

Чушь! Это почему это?

Нет ничего невозможного, но встаёт вопрос: Надо ли это делать руками, когда в ней есть конфигуратор.
А если есть надобность связаться с другими приложениями, то можно использовать технологию OLE например.

Автор: pythonwin 2.2.2007, 13:38
Цитата(Zero @  31.12.2006,  00:39 Найти цитируемый пост)
А если есть надобность связаться с другими приложениями, то можно использовать технологию OLE например. 

а для интеграции через OLE нужен клиент на ПК? Или можно только сервер 1С?

Автор: Aida 6.5.2007, 22:41
привет!!!помогите пожалуйста.
код ниже.здесь не пашет 1.суммирование по колонкам с добавленем строки
2.кнопка печать вообще не обработана.
3. как обработать разность двух дат??



Функция ДнейВМесяце(Дта)
    Возврат День(КонецМесяца(Дта));
КонецФункции

Функция ДнейВГоду(НомерГода)
    ДтаГода = КонецМесяца(Дата(НомерГода,2,1));
    Возврат ?(ДтаГода=28,365,366);
КонецФункции

Процедура КнопкаВыполнитьНажатие(Кнопка)
    Если Мес = 0 Тогда
        Сообщить("Месяц не должен быть 0!",СтатусСообщения.Важное);
        Возврат;
    КонецЕсли;
    ПерваяСтрока = Результат.Добавить();
    ПерваяСтрока.Мес = Мес;
    ПерваяСтрока.Год = Год;
    ПерваяСтрока.Общий = Общий;
    ПерваяСтрока.Основной =  Основной;
    ПерваяСтрока.Процент = Процент;
    ПерваяСтрока.Остаток = Остаток;
    ПерваяСтрока.Досрочное = Досрочное;
    ДатаНачалаОтсчета = Дата(Год,Мес,1);
    ПредыдущаяСтрока = ПерваяСтрока;
    Для Инд = 1 по СрокКредита Цикл
        ДатаНачалаОтсчета = ДобавитьМесяц(ДатаНачалаОтсчета,1);
        СтрТЗ = Результат.Добавить();
        СтрТЗ.Мес = Месяц(ДатаНачалаОтсчета);
        СтрТЗ.Год = Год(ДатаНачалаОтсчета);
        Если (ПредыдущаяСтрока.Остаток + СтрТЗ.Процент) > ПредыдущаяСтрока.Общий Тогда
            СтрТЗ.Общий=ПредыдущаяСтрока.Общий;
        иначе
            СтрТЗ.Общий=СтрТЗ.Основной+СтрТЗ.Процент;
        КонецЕсли;
        
        Если (ПредыдущаяСтрока.Остаток*ДнейВМесяце(ДатаНачалаОтсчета)/ДнейВГоду(СтрТЗ.Год))>=0 Тогда  //платеж процентов
            СтрТЗ.Процент=ПредыдущаяСтрока.Остаток*    ДнейВМесяце(ДатаНачалаОтсчета)/ДнейВГоду(СтрТЗ.Год);    
        иначе
             СтрТЗ.Процент = 0;
         КонецЕсли;
         
         Если ПредыдущаяСтрока.Остаток + СтрТз.Процент > ПредыдущаяСтрока.Общий тогда
             СтрТз.Основной=СтрТЗ.Общий-СтрТЗ.Процент;
        иначе 
             СтрТЗ.Основной=ПредыдущаяСтрока.Остаток
         КонецЕсли;
         
         СтрТЗ.Остаток=ПредыдущаяСтрока.Остаток - ПредыдущаяСтрока.Досрочное - СтрТЗ.Основной;
        ПредыдущаяСтрока = СтрТЗ;
    КонецЦикла;  
                 СамаяПоследняяСтрока = ТЗ.Добавить();
                 СамаяПоследняяСтрока.ИмяКолонки = СуммаПоКолонке;
                 СуммаПоКолонке=ТЗ.Итог("Общий");
                 СуммаПоКолонке=ТЗ.Итог("Основной");
                 СуммаПоКолонке=ТЗ.Итог("Процент");
                 СуммаПоКолонке=ТЗ.Итог("Остаток");
КонецПроцедуры

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    Результат.Колонки.Добавить("Мес",,"месяц");
    Результат.Колонки.Добавить("Год",,"год");
    Результат.Колонки.Добавить("Общий",,"Общий ежемесячный платеж");
    Результат.Колонки.Добавить("Основной",,"Платеж в счет погашения основного долга");
    Результат.Колонки.Добавить("Процент",,"Платеж процентов");
    Результат.Колонки.Добавить("Остаток",,"Остаток основного долга");
    Результат.Колонки.Добавить("Досрочное",,"Досрочное погашение");
КонецПроцедуры

Процедура Печать()
    
    
КонецПроцедуры;


Автор: stron 6.5.2007, 22:49
Модератор: Один вопрос - одна тема!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)