Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Связные документы в форме текущего
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
bereznoy
Идея такая, при открытии накладной, будет небольшое окошко в котором будет список связных
ПКО, т.е. дата и сумма
Как это реализовать лучше? Запросом к ПКо где основание такущий документ?
Pepe
А если выбрать подчиненные документы, а не запросом?
Ardi
док = СоздатьОбъект("Документ"); //БЕЗ ВИДА ДОКУМЕНТА
Дальше
1) ВыбратьПодчиненныеДокументы(<Дата1>,<Дата2>,<Докум>)
2) ВыбратьПоЗначению(<Дата1>,<Дата2>,<ИмяОтбора>,<Знач>)

Внимание!!!
В 7.7 перебор "в 10 раз" быстрее запроса.
bereznoy
Цитата(Ardi @ 11.04.12, 22:36) необходимо зарегистрироваться для просмотра ссылки
док = СоздатьОбъект("Документ"); //БЕЗ ВИДА ДОКУМЕНТА
Дальше
1) ВыбратьПодчиненныеДокументы(<Дата1>,<Дата2>,<Докум>)
2) ВыбратьПоЗначению(<Дата1>,<Дата2>,<ИмяОтбора>,<Знач>)

Внимание!!!
В 7.7 перебор "в 10 раз" быстрее запроса.

Я создал в форме окошко с ТЕКСТОМ, идентификатор "ТекстОснования1"
в модуле
    Форма.ТекстОснования1.Заголовок(СокрЛП(СвязнойДок));

Но как именно СвязнойДок получить не понял, и как сделать что б каждая запись была на след строке, связныз будет макс 4,
так что думаю хватит
bereznoy
Как то так?
 Док = СоздатьОбъект(Документ.РасходнаяРеализатора);
    Док.ВыбратьПодчиненныеДокументы('01.01.80',ТекущаяДата(),"ПриходныйКассовый");
    
    СвязнойДок = Док;    
    Форма.ТекстОснования1.Заголовок(СокрЛП(СвязнойДок));
Ardi
Док = СоздатьОбъект("Документ");
Док.ВыбратьПодчиненныеДокументы('01.01.80',ТекущаяДата(),ТекущийДокумент());
    
списокЗначенийНаФорме.УдалитьВсе();
Пока док.получитьДОкумент()=1 цикл
списокЗначенийНаФорме.ДобавитьЗначение(Док,Док);

КонецЦикла;
XBrut
Цитата
Док.ВыбратьПодчиненныеДокументы('01.01.80',ТекущаяДата(),ТекущийДокумент());


А зачем датами ограничивать ? Вроде и без явного указания дат работает...
bereznoy
Цитата(Ardi @ 12.04.12, 0:29) необходимо зарегистрироваться для просмотра ссылки
Док = СоздатьОбъект("Документ");
Док.ВыбратьПодчиненныеДокументы('01.01.80',ТекущаяДата(),ТекущийДокумент());
    
списокЗначенийНаФорме.УдалитьВсе();
Пока док.получитьДОкумент()=1 цикл
списокЗначенийНаФорме.ДобавитьЗначение(Док,Док);

КонецЦикла;

У меня в списке значений каждый документ как 0 0,
я так понимаю (Док, Док) это и есть эти два нуля
Надо (Док.НомерДок, Док.Сумма) ? Тогда будет номер документа и сумма вместо нулей?
Ardi
списокЗначенийНаФорме.ДобавитьЗначение(Док.ТекущийДокумент(),Док.ТекущийДокумент
());
bereznoy
Цитата(Ardi @ 12.04.12, 22:18) необходимо зарегистрироваться для просмотра ссылки
списокЗначенийНаФорме.ДобавитьЗначение(Док.ТекущийДокумент(),Док.ТекущийДокумент
());

Я так делаю ,какие то цифры ... которых нет вообще в связном документе, а первое Док.ТекущийДокумент() и второе что за параметр?
Мне б в идеале видеть дату документа и сумму в списке

Получилось, но в список можно получить только дату подчин документа или только сумму,а мне б что в строке была дата и сумма, как это реализовать можно?
nysysimara
Цитата(bereznoy @ 13.04.12, 0:06) необходимо зарегистрироваться для просмотра ссылки
мне б что в строке была дата и сумма, как это реализовать можно?

1 вариант - таблица значений, где колонки: "Докум, Дата, Сумма"
2 вариант - в списке расписать в символьном представлении как то так
    Пока док.получитьДОкумент()=1 цикл  
        текДок = Док.ТекущийДокумент();
        списокЗначенийНаФорме.ДобавитьЗначение(текДок,""+текДок.НомерДок+" от "+текДок.ДатаДок+" Сумма="+текДок.Сумма);
    КонецЦикла;

только я не помню какой реквизит с суммой в приходном кассовом
Vofka
bereznoy, вот вы не первый раз пишете уже "получилось". Но при этом вам всегда помогают люди. Уважте людей, скажите КАК получилось.

ЗЫ. надо ввести минуса в рейтинг, буду минусовать вас.
bereznoy
Цитата(Vofka @ 13.04.12, 8:54) необходимо зарегистрироваться для просмотра ссылки
bereznoy, вот вы не первый раз пишете уже "получилось". Но при этом вам всегда помогают люди. Уважте людей, скажите КАК получилось.

ЗЫ. надо ввести минуса в рейтинг, буду минусовать вас.

Извиняюсь - Исправлюсь!
bereznoy
Процедура ОбновитьНадписи()
    Форма.ТекстВалюты.Заголовок(глСтрокаВалюты(Контекст));
    Форма.ТекстОснования.Заголовок(СокрП(Основание));
    Форма.ТекстПорядокОплаты.Заголовок(глСтрокаПорядокОплаты(Контекст));
    Док = СоздатьОбъект("Документ");
Док.ВыбратьПодчиненныеДокументы(,,ТекущийДокумент());
    
СписокЗначений.УдалитьВсе();
Пока док.получитьДОкумент()=1 цикл
текДок = Док.ТекущийДокумент();
       СписокЗначений.ДобавитьЗначение(текДок,""+текДок.НомерДок+" от "+текДок.ДатаДок+" Сумма="+текДок.СуммаСНДС);

КонецЦикла;


Вопрос исчерпан, жму на палец
bereznoy
А если ПКО был помечен на удаление или снято проведение, как сделать аткое условие что б такие дкументы не попадали в список?
И например сразу после создания ПКО динамические повлялся в списке, а то закрыть/открыть....не очень удобно

Фильтр на отбор всех проведенных такой
    Док.УстановитьФильтр(1, 0, 1, 1, 1, 1);
Ardi
вставить в форму текстовое поле с формулой фффффффффффф().

Код ФУНКЦИИ
Функция фффффффффффф()
ОбновитьНадписи();
Возврат "";
КонецФункции
bereznoy
А как получить связные в список значений именно ПКО ?
nysysimara
Цитата(bereznoy @ 23.04.12, 20:10) необходимо зарегистрироваться для просмотра ссылки
А как получить связные в список значений именно ПКО ?

так:
Пока Док.ПолучитьДокумент()=1 цикл
    текДок = Док.ТекущийДокумент();  
    Если Док.Вид()="ПриходныйКассовый" Тогда  
        СписокЗначений.ДобавитьЗначение(текДок,""+текДок.НомерДок+" от "+текДок.ДатаДок+" Сумма="+текДок.СуммаСНДС);
    КонецЕсли;
КонецЦикла;
bereznoy
А если создаю новый документ, то ТекущийДокумент() ссылки еще нет, соответвенно error получаю, как сделать так что б при создании нового документа не было ошибки?
Быть может "Если док новый" или "Если не записан" как то так? подскажите пожалуйста
Читатель
Цитата(bereznoy @ 30.04.12, 14:53) необходимо зарегистрироваться для просмотра ссылки
А если создаю новый документ, то ТекущийДокумент() ссылки еще нет, соответвенно error получаю

Ну вот Вы же сами себе отвечаете, что надо условие:
Если ПустоеЗначение(ТекущийДокумент()) = 0 Тогда

или в модуле формы документа можно применить:
Если Выбран() = 1 Тогда

и дальше Ваш выбор подчинённых документов.
bereznoy
Цитата(Читатель @ 30.04.12, 17:27) необходимо зарегистрироваться для просмотра ссылки
Ну вот Вы же сами себе отвечете, что надо условие:
Если ПустоеЗначение(ТекущийДокумент()) = 0 Тогда

или в модуле формы документа можно применить:
Если Выбран() = 1 Тогда

и дальше Ваш выбор подчинённых документов.

Да, я просто не знал что можно использовать "ПустоеЗначение", Вам огромное спасибо
Процедура ОбновитьСписок1()

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

       СписокЗначений.ДобавитьЗначение(текДок,""+текДок.ДатаДок+"   Сумма = " + Формат(текДок.Итог("СуммаСНДС"),"Ч13.2"));
      ВозвратНКЛ = ВозвратНКЛ +  текДок.Итог("СуммаСНДС");
КонецЕсли;

КонецЦикла;

ДолгПоНакл=Итог("СуммаСНДС")-Оплачено-ВозвратНКЛ;
КонецЕсли;    
КонецПроцедуры
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.