Заказы на доработку 1С (сервис удаленной работы)

Хранилище

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

Здравствуйте, гость ( Войти | Зарегистрироваться )




>  Как получить Счет реализации (Дохода)
shkoda
Отправлено: 15.05.18, 14:43


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Alex_Ticho @ Сегодня, 15:23 * ,
супер! это именно то что нужно!
Спасибо!
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #141556 · Ответов: 3 · Просмотров: 1265
 

>  Как получить Счет реализации (Дохода)
shkoda
Отправлено: 15.05.18, 12:48


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Всем приветы!

Фото конфы


Столкнулся впервые с Бухгалтерскими итогами, но что-то не сильно получается выполнить поставленную задачу.
Задание большое и объёмное, но вот споткнулся на казалось бы мелочи - не могу получить СчётРеализации из документа.
Есть у меня Индексированная таблица наполненная докуменами (РасходнаяНакладная, ПКО, Закрытие, АктПереучета и пр.) - заполняется из запроса по БухИтогам

Так вот как мне имея эти документы вытянуть из них этот самый Счёт реализации?




Может кто сталкивался?

  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #141551 · Ответов: 3 · Просмотров: 1265
 

>  Нединамический фильтр и Доступность кнопочек на панели инструментов
shkoda
Отправлено: 01.03.17, 16:54


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


nysysimara @ Сегодня, 15:59 * ,
пробовал ранее - не помогло

Acid @ Сегодня, 15:59 * ,
я тоже так хотел сделать, но беда в том что в самом скором времени добавится новый реквизит - Регион, по которому тоже нужно будет делать отбор

а фирм действительно много, и людей там работает мама-негорюй rulez.gif
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #123628 · Ответов: 5 · Просмотров: 1656
 

>  Нединамический фильтр и Доступность кнопочек на панели инструментов
shkoda
Отправлено: 01.03.17, 14:00


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Всем приветы!

Фото конфы, но там многое изменено уже


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


Написал ЧекБокс, всё работает и строки с пометкой удаления пропадают, но на следубщий день обратились с жалобой, что не нажимается кнопка НоваяСтрока - она просто недоступна


Вот кот:

Процедура Скрывать()
    
    Если фСкрывать = 1 Тогда
        
        // выполним запрос по справочнику Сотрудники
        ТекстЗапр = "//{{ЗАПРОС(ОтборСотр)";  
        ТекстЗапр = "
        |Обрабатывать НеПомеченныеНаУдаление;
        |Фирма = Справочник.Фирмы.ТекущийЭлемент;
        |Группировка Фирма;
        |";//}}ЗАПРОС                
        Запр = СоздатьОбъект("Запрос");
        Если Запр.Выполнить(ТекстЗапр) = 0 Тогда
            Возврат;
        КонецЕсли;
        СписЭлементов = СоздатьОбъект("СписокЗначений");
        Пока Запр.Группировка("Фирма") = 1 Цикл
            СписЭлементов.ДобавитьЗначение(Запр.Фирма);
        КонецЦикла;
        //УстановитьОтбор(,);
        ИспользоватьСписокЭлементов(СписЭлементов);    
        Форма.Обновить();

    Иначе
        
        // выполним запрос по справочнику Сотрудники
        ТекстЗапр = "//{{ЗАПРОС(ОтборСотр)";  
        ТекстЗапр = "
        //|Обрабатывать НеПомеченныеНаУдаление;
        |Фирма = Справочник.Фирмы.ТекущийЭлемент;
        |Группировка Фирма;
        |";//}}ЗАПРОС                
        Запр = СоздатьОбъект("Запрос");
        Если Запр.Выполнить(ТекстЗапр) = 0 Тогда
            Возврат;
        КонецЕсли;
        СписЭлементов = СоздатьОбъект("СписокЗначений");
        Пока Запр.Группировка("Фирма") = 1 Цикл
            СписЭлементов.ДобавитьЗначение(Запр.Фирма);
        КонецЦикла;
        //УстановитьОтбор(,);
        ИспользоватьСписокЭлементов(СписЭлементов);    
        Форма.Обновить();
    КонецЕсли;
    
КонецПроцедуры



Я так понимаю, что после применения ИспользоватьСписокЭлементов эти все слюнявки происходят. Или может я ошибаюсь, граждане подскажите, где ошибка? (Про ДНК можно не писать - уже осознал это связавшись с 1С)
И как сделать так чтобы и фильтр работал - в будущем ещё добавятся реквизиты для фильтрации - и эти кнопочки наверху были активны.

Всем спасибо за помощь!
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #123619 · Ответов: 5 · Просмотров: 1656
 

>  При OLE запросе ошибка - Плохой тип переменной
shkoda
Отправлено: 22.07.16, 14:54


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


igmig65 @ Вчера, 13:13 *,

фухх..
намаялся, конечно, и решение очень странное, но тем не менее рабтает 100%

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

                        КонецЦикла;


Тему можно закрвыать.

Всем спасибо!
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #114741 · Ответов: 4 · Просмотров: 3362
 

>  При OLE запросе ошибка - Плохой тип переменной
shkoda
Отправлено: 19.07.16, 16:16


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Всем приветы!

Делаю отчёт, и пытаюсь при помощи ОЛЕ в него добавить данные из другой базы. Обе базы самописные но на основе ЗиКа.
Я хочу взять данные по Начислениям ЗП и вот как это выглядит:

БазаОле=СоздатьОбъект("V77S.Application");
...
    ЖурналЗП = БазаОле.CreateObject("ЖурналРасчетов.Зарплата");
    СпрСот = БазаОле.CreateObject("Справочник.Сотрудники");
...
Если СпрСот.НайтиПоКоду(СокрЛП(Сред(ЗначениеГр2.КОД,3))) = 1 Тогда
Сотр = СпрСот.ТекущийЭлемент();
Сообщить(Сотр.Наименование);
ЖурналЗП.ВыбратьЗаписиПоОбъекту(Сотр,НачДата,КонДата);
    Пока ЖурналЗП.ПолучитьЗапись() = 1 Цикл
        Если ЖурналЗП.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ВсеНачисления)=1 Тогда
            ВсегоНачислено = ВсегоНачислено + ЖурналЗП.Результат;
        КонецЕсли;
        Сообщить(ЖурналЗП.Результат);
    КонецЦикла;
КонецЕсли;

ЗПФ1 = ВсегоНачислено;



При выполнении этого "кода"
получается вот такая ошибка

Если ЖурналЗП.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ВсеНачисления)=1 Тогда
....ERT(195)}: Плохой тип переменной

уже по всякому пробовал, и так и эдак, уже неделю парюсь не могу сделать, но начальство уже очень живо интересуется почему отчет всё ещё не готов(((

очень подозреваю, что проблема кроется в
ГруппаРасчетов.ВсеНачисления
судя по всему Оле не видит что там написано, либо не может с этим работать

может кто сталкивался с подобным? как обойти эту проблему или решить другим способом

и ещё - думаю попробовать сделать прямым запросом SQL'ным


п.с. если сделать
ЖурналЗП.ВыбратьЗаписиПоОбъекту(Сотр,НачДата,КонДата);
    Пока ЖурналЗП.ПолучитьЗапись() = 1 Цикл
        Сообщить(ЖурналЗП.Результат);
    КонецЦикла;


то данные за нужный период выводятся, но там помимо начислений есть и другие записи, как их отфильтровать?


Всем спасибо!
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #114624 · Ответов: 4 · Просмотров: 3362
 

>  кто объяснит синтаксис и что оно считает?
shkoda
Отправлено: 22.03.16, 17:47


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Vofka @ Сегодня, 16:23 *,

ого! эвоно как! теперь всё понятно, спасибо большое!
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #110187 · Ответов: 8 · Просмотров: 2103
 

>  кто объяснит синтаксис и что оно считает?
shkoda
Отправлено: 22.03.16, 16:18


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Vofka @ Сегодня, 16:06 *,


= ?
- почему после знака равно стоит вопрос и на что это влияет?

ДнейНаБольничномБух=0,0,
- почему после ДнейНаБольничномБух стоит равно с нулями

ДнейНаБольничномБух,2,0
- почему после ДнейНаБольничномБух стоят цифры 2 и 0

у гугла спрашивал, но толково ничего не нашёл(
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #110185 · Ответов: 8 · Просмотров: 2103
 

>  кто объяснит синтаксис и что оно считает?
shkoda
Отправлено: 22.03.16, 15:25


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Товарищи, я дичайше извиняюсь!
Но тут такую строку нашёл от предпрога, что диву даюсь - нужно поредактировать значение СуммаБезНалоговФ1, а оно встречается только в одном месте модуля

СуммаЗаСчетСоцСтраха = ?(ДнейНаБольничномБух=0,0,Окр(СуммаБезНалоговФ1*Время/ДнейНаБольничномБух,2,0));


может кто объяснит синтаксис и что оно считает?

Всем заранее спасибо!


 ! 

Правила, п.4,5
 
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #110177 · Ответов: 8 · Просмотров: 2103
 

>  OLE-запрос
shkoda
Отправлено: 26.02.16, 10:10


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


shkoda @ 12.01.16, 20:19 *,

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

    Если ДокументОснование.Вид()="БольничныйЛист" Тогда
    ДатаНачалаБоль = ДокументОснование.ДатаНачала;
    ДатаОкончанияБоль = ДокументОснование.ДатаОкончания;
    ТабельныйНомер = СокрЛП(Сотрудник.Код);
    Состояние("Запуск OLE, ожидайте...");    
        
    БазаОле=СоздатьОбъект("V77S.Application");
    КаталогБазыОЛе  = "\\контора\1C\ЗиК\";
    ПользовательОле = "Вася";
    ПарольОле       = "111";
    МонопольныйРежимOLE = ""; // для немонопольного запуска указать пустую строку!
    ЗапускБезЗаставки = 1;       // для появления заставки (например, чтобы наблюдать
                             // процесс запуска базы OLE визуально) поставьте здесь "0"
    РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +
                       СокрЛП(КаталогБазыОле) + " /n" +
                       СокрЛП(ПользовательОле)+ " /p" +
                       СокрЛП(ПарольОле) + МонопольныйРежимOLE,
                       ?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
        Если РезультатПодключения = 0 Тогда
            Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
        КонецЕсли;
        
    ОлеЗапрос = БазаОле.CreateObject("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(ОлеЗапрос)
    |Период с '"+ДатаОкончанияБоль+"' по '"+ДатаОкончанияБоль+"';
    |Владелец = Справочник.Сотрудники.Наименование;
    |Наименование = Справочник.Сотрудники.ФизическоеЛицо;
    |Оклад = Справочник.Сотрудники.ОсновноеНазначение.Владелец.ОсновноеНазначение.Оклад;
    |УникальныйНомер = Справочник.Сотрудники.Код;
    |Условие(УникальныйНомер = """+ТабельныйНомер+""");
    |Группировка Наименование;
    |"//}}ЗАПРОС
;

    Если ОлеЗапрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Сообщить("При обработке запроса произошла ОШИБКА");
        Возврат;
    Иначе
        //Сообщить("Запрос выполнен УСПЕШНО");
    КонецЕсли;
    
    Пока ОлеЗапрос.Группировка("Наименование")=1 Цикл
        Оклад = ОлеЗапрос.Оклад;
        Владелец = ОлеЗапрос.Владелец;
        Сообщить("Оклад сотрудника  " + СокрЛП(Владелец) + " в период больгичного с " + ДатаНачалаБоль + " по " + ДатаОкончанияБоль + " равен " + Оклад + " грн.");
    КонецЦикла;
    
    ОкладЗаДень = ( Оклад * 12 ) / 365;
    СуммаСтар = ОкладЗаДень * КвоДней * (ДокументОснование.ПроцентОплаты / 100);
    СуммаСтар = СуммаСтар - (СуммаСтар * 0.18); // НДФЛ
    СуммаКУдержанию = Макс(0,СуммаНов-СуммаСтар);
    СрЗпСтар = СуммаСтар/КвоДней;
    
    БазаОле = "";
    КонецЕсли;


Всем спасибо, тему можно закрывать!
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #109084 · Ответов: 5 · Просмотров: 4163
 

>  OLE-запрос
shkoda
Отправлено: 12.01.16, 20:19


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Цитата(Мичман Харитонов @ 12.01.16, 17:18) *
Реквизит "Оклад", наверное, периодический?
И назначение - тоже?

То есть, что-то вроде
Справочник.Назначения.Получить(ДатаДок).Оклад.Получить(ДатаДок)


да, действительно - периодический
сейчас попробую
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #107029 · Ответов: 5 · Просмотров: 4163
 

>  OLE-запрос
shkoda
Отправлено: 12.01.16, 17:11


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Всем здрасте!

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

Так вот код

    Если ДокументОснование.Вид()="БольничныйЛист" Тогда
    
    Состояние("ожидайте...");    
        
    БазаОле=СоздатьОбъект("V77S.Application");
    КаталогБазыОЛе  = "\\123.ua\1C\123\";
    ПользовательОле = "123";
    ПарольОле       = "123";
    МонопольныйРежимOLE = ""; // для немонопольного запуска указать пустую строку!
    ЗапускБезЗаставки = 1;       // для появления заставки (например, чтобы наблюдать
                             // процесс запуска базы OLE визуально) поставьте здесь "0"
    РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +
                       СокрЛП(КаталогБазыОле) + " /n" +
                       СокрЛП(ПользовательОле)+ " /p" +
                       СокрЛП(ПарольОле) + МонопольныйРежимOLE,
                       ?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
        Если РезультатПодключения = 0 Тогда
             Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
        КонецЕсли;
    
    ОлеЗапрос = БазаОле.CreateObject("Запрос");
    СпрОлеСотр = БазаОле.CreateObject("Справочник.Сотрудники");
    СпрОлеНазнач = БазаОле.CreateObject("Справочник.Назначения");
    
    ЗапросБоль = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(ЗапросБоль)
    |Владелец = Справочник.Сотрудники.ТекущийЭлемент;
    |Оклад = Справочник.Назначения.Оклад;
    |"//}}ЗАПРОС
;

    Если ЗапросБоль.Выполнить(ТекстЗапроса) = 0 Тогда
        Сообщить("Fail");
        Возврат;
    Иначе
        Сообщить("Win");
    КонецЕсли;
    
    ТЗ = СоздатьОбъект("ТаблицаЗначений");
    ЗапросБоль.Выгрузить(ТЗ);
    
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку() = 1 Цикл
        Сообщить("1С - круто! ");
        Оклад = ТЗ.Оклад;
    КонецЦикла;
        
    //Оклад = 1677; // то, что должно получится на выходе


Но, получается не так как предполагается
выдаёт ошибку
{Документ.РазницаВСрЗп.Форма.Модуль(130)}: Поле агрегатного объекта не обнаружено (Оклад)

честно сказать уже несколько дней бьюсь над этой бедой, но ничего толкового не получается((

подскажите, люди добрые как быть?

Спасибо!
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #107026 · Ответов: 5 · Просмотров: 4163
 

>  Цикл не корректно обрабатывает команды
shkoda
Отправлено: 30.12.15, 9:56


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Vofka @ Вчера, 9:04 *,
пробовал и так и сяк
в итоге получилось вот таким способом

Процедура Перенести()

    ТабЗнач.ВыбратьСтроки();
        Пока ТабЗнач.ПолучитьСтроку() = 1 Цикл
            Если
            (СокрЛП(ТабЗнач.Статус) =  "Редактирован")
            И
            (СокрЛП(ТабЗнач.Выбрать) = "Да")
            Тогда
                    НомерПриказа = Сред(ТабЗнач.Документ,19,9);
                    
                    Если ФС.СуществуетФайл("\\123\123\ExtForms\123\!TEST\123.ert") = 1 Тогда
                
                    Параметр = СоздатьОбъект("СписокЗначений");
                    Параметр.ДобавитьЗначение(НачДата,"НачДата");
                    Параметр.ДобавитьЗначение(КонДата,"КонДата");
                    Параметр.ДобавитьЗначение(НомерПриказа,"НомерДок");
                    
                    ОткрытьФормуМодально("Отчет",Параметр,"\\123\123\ExtForms\123\!TEST\123.ert");
                    Иначе
                    Предупреждение("Не найден файл обработки ........!!!");    
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
КонецПроцедуры


nysysimara @ Вчера, 8:51 *,
отладчик многое интересное показал, решилось все применением ОткрытьФормуМодально - при этом не появляется ГрупповойКонтекст в возврате

sava1 @ Вчера, 7:48 *,
да нет же, получает
просто по одному документу за один проход)
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #106779 · Ответов: 4 · Просмотров: 1558
 

>  Цикл не корректно обрабатывает команды
shkoda
Отправлено: 29.12.15, 1:26


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Всем здрасте!

Собственно, беда - при проходе Цикла в переменную Параметр загоняются НомерДокумента
и передаётся на обработку во внешнюю форму

в идеале внешняя форма получает список с номерами документов и "перепроводит" их
но в реальности "перепроводит" только самое первое что получает - только один документ и только первый

как быть?
как заставить этот цикл отрабатывать каждый раз при проходе и передаче параметра?


Процедура Перенести()

    ТабЗнач.ВыбратьСтроки();
        Пока ТабЗнач.ПолучитьСтроку() = 1 Цикл
            Если
            (СокрЛП(ТабЗнач.Статус) =  "Редактирован")
            И
            (СокрЛП(ТабЗнач.Выбрать) = "Да")
            Тогда
                НомерПриказа = Сред(ТабЗнач.Документ,19,9);
                
                    Если ФС.СуществуетФайл("\\123\123\ExtForms\123\!TEST\123.ert") = 1 Тогда
                    Параметр = СоздатьОбъект("СписокЗначений");
                    Параметр.ДобавитьЗначение(НачДата,"НачДата");
                    Параметр.ДобавитьЗначение(КонДата,"КонДата");
                    Параметр.ДобавитьЗначение(НомерПриказа,"НомерДок");
                    ОткрытьФорму("Отчет",Параметр,"\\123\123\ExtForms\123\!TEST\123.ert");    
                    Иначе
                    Предупреждение("Не найден файл обработки ........!!!");
                    КонецЕсли;
            КонецЕсли;
        КонецЦикла;

КонецПроцедуры


Вес спасибо! icon_beer17.gif
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #106712 · Ответов: 4 · Просмотров: 1558
 

>  ТаблицаЗначений и OLE
shkoda
Отправлено: 18.12.15, 17:16


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Acid @ 16.12.15, 16:35 *,

у меня же табличка не статическая((
пока сделал вот так



Процедура  ОбработкаТабл()
    
        Если  ТабЗнач.НайтиЗначение("Нет",ТабЗнач.ТекущаяСтрока(),"Выбрать") = 1
            Тогда
            ТабЗнач.УстановитьЗначение(ТабЗнач.ТекущаяСтрока(),"Выбрать","Да");
            Иначе
            ТабЗнач.УстановитьЗначение(ТабЗнач.ТекущаяСтрока(),"Выбрать","Нет");
        КонецЕсли;
    
КонецПроцедуры


по двойному клику на строке в табличке
конечно немного некрасиво, но сойдёт
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #106360 · Ответов: 5 · Просмотров: 3426
 

>  ТаблицаЗначений и OLE
shkoda
Отправлено: 16.12.15, 15:49


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Цитата(Acid @ 11.12.15, 16:19) *
Если данные тянутся через ОЛЕ, то любой объект будет выглядеть именно так. Потому что это ОЛЕ-объекты.
Обращаться нужно по конкретным реквизитам:
ТабЗнач.Сотрудник =СокрЛП(СпрДокОТиЗ.Сотрудник.Наименование);


спасибо!
так и сделал и остальное по аналогии



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

Цитата(Мичман Харитонов @ 15.12.15, 14:38) *
Обращаться нужно только к конкретным реквизитам, при чем OLE понимает только простые типы данных - строка, число, дата.
(вон на скриншоте, дата перенеслась, объекты - нет).


допилилось успешно

СпрДокОТиЗ.ВыбратьЭлементы(); 
    Пока СпрДокОТиЗ.ПолучитьЭлемент()=1 Цикл

        ТабЗнач.НоваяСтрока();
        ТабЗнач.Код = СпрДокОТиЗ.Код;
        ТабЗнач.Документ = "Приказ по отпуску " + СокрЛП((СпрДокОТиЗ.Документ.НомерДок)) + " от " + (СпрДокОТиЗ.Документ.ДатаДок);
        ТабЗнач.Изменен = СпрДокОТиЗ.Изменен;
        ТабЗнач.ИзмененВ = СпрДокОТиЗ.ИзмененВ;
        ТабЗнач.Сотрудник = СокрЛП(СпрДокОТиЗ.Сотрудник.Наименование);
        
        Номер = Номер + 1;
        
    КонецЦикла;



теперь появилась новая мега идея - делать чек-боксы в последней колонке(((
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #106276 · Ответов: 5 · Просмотров: 3426
 

>  ТаблицаЗначений и OLE
shkoda
Отправлено: 11.12.15, 16:13


Общительный
**

Группа: Пользователи
Сообщений: 18
Регистрация: 14.10.15
Пользователь №: 46368


Доброго времени суток!

Я только начинающая личинка программиста 1С.
Начальство дало задание - сделать внешнюю обработку для переноса документов из одной базы в другую.

Платформа 1С7.7 релиз 027, конфигурация Зарплаты и Кадры - там лежат документы - ПриказПоОтпуску, их нужно переместить в самописную базу Отдела Труда и Зароботной Платы.

Сделал вот такую форму
и получил на выходе вот что:


сам листинг вот:

//// 09.12.2015 ////////////////////////////////////////////////////////////////////////////////////////////////////////
Перем СпрДокОТиЗ, БазаОле;


Процедура ПриОткрытии()

    НачДата = (НачМесяца(ТекущаяДата()));
        КонДата = (КонМесяца(ТекущаяДата()));
    
    ОчиститьОкноСообщений();
    Сообщить("Инициализация подсистемы - время ожидания - 10 секунд","");
    Состояние("Подключение к внешней базе");
    
    БазаОле = СоздатьОбъект("V77S.Application");
    КаталогБазыОЛе = "\\xxx\yyy";
    ПользовательОле = "qqq";
    ПарольОле       = "qqq";
    МонопольныйРежимOLE = ""; // для немонопольного запуска указать пустую строку!
    ЗапускБезЗаставки = 1;    // для появления заставки (например, чтобы наблюдать
                              // процесс запуска базы OLE визуально) поставьте здесь "0"
    РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +
                       СокрЛП(КаталогБазыОле) + " /n" +
                       СокрЛП(ПользовательОле)+ " /p" +
                       СокрЛП(ПарольОле) + МонопольныйРежимOLE,
                       ?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
        Если РезультатПодключения = 0 Тогда
             Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
        КонецЕсли;
         
    Сообщить("Подключено","!!!");
    
    СпрДокОТиЗ = БазаОле.CreateObject("Справочник.ПриказыПоОтпускамПереносИзЗиКвОТиЗ");
    
    //Формирование заголовка таблицы на форме
    ТабЗнач.НоваяКолонка("Код","СпрДокОТиЗ.Код",,,"Код",5,,1);
    ТабЗнач.НоваяКолонка("Документ","СпрДокОТиЗ.Документ",,,"Документ",40,,1);
    ТабЗнач.НоваяКолонка("Дата","СпрДокОТиЗ.Изменен",,,"Дата",8,,1);
    ТабЗнач.НоваяКолонка("Сотрудник","СпрДокОТиЗ.Сотрудник",,,"Сотрудник",,,1);

КонецПроцедуры


//*******************************************
Процедура Сформировать()
    
    ТабЗнач.Очистить();
    
    //Формирование заголовка таблицы на форме, повторно после очиски, чтобы не задваивалось
    ТабЗнач.НоваяКолонка("Код","СпрДокОТиЗ.Код",,,"Код",5,,1);
    ТабЗнач.НоваяКолонка("Документ","СпрДокОТиЗ.Документ",,,"Документ",40,,1);
    ТабЗнач.НоваяКолонка("Дата","СпрДокОТиЗ.Изменен",,,"Дата",8,,1);
    ТабЗнач.НоваяКолонка("Сотрудник","СпрДокОТиЗ.Сотрудник",,,"Сотрудник",,,1);
    
    Состояние("Подключение к внешней базе");
        
    Номер = 0;
    
    СпрДокОТиЗ.ВыбратьЭлементы();
    Пока СпрДокОТиЗ.ПолучитьЭлемент()=1 Цикл

        ТабЗнач.НоваяСтрока();
        ТабЗнач.Код = СпрДокОТиЗ.Код;
        ТабЗнач.Документ = СпрДокОТиЗ.Документ;
        ТабЗнач.Дата = СпрДокОТиЗ.Изменен;
        ТабЗнач.Сотрудник =СпрДокОТиЗ.Сотрудник;
        
        Номер = Номер + 1;
        
    КонецЦикла;
        
    
    Сообщить("Количество Приказов по отпускам в справочнике равно " + Номер );
    
КонецПроцедуры


Собственно на этом всё и стало....
что делать не пойму, вроде всё правильно - голова уже кругом идёт
ночью сегодня снилось что пишу код для этой обработки((

Первым делом думаю, побороть форму так чтобы она отображала всё корректно, а затем уже писать до того состояния чтобы перенос осуществлялся


Товарищи, сильно не серчайте, на форуме только зарегистрировался что к чему ещё не до конца понял
Всем спасибо кто откликнется))
  Форум: Программирование в 1С Предприятие 7.7 · Просмотр сообщения: #106112 · Ответов: 5 · Просмотров: 3426
 


Новые сообщения  Открытая тема (есть новые ответы)
Опрос  Опрос (есть новые голоса)
Нет новых сообщений  Открытая тема (нет новых ответов)
Нет новых голосов  Опрос (нет новых голосов)
Популярная тема  Горячая тема (есть новые ответы)
Закрыта  Закрытая тема
Нет новых  Горячая тема (нет новых ответов) Перемещена  Тема перемещена
 

RSS Текстовая версия Сейчас: 28.03.24, 13:56
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!