Имя: Пароль:
1C
1С v8
Вывод документов Основания в Форму списка
0 borzay999
 
18.07.12
08:18
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
   дкСписокВыбор(ЭтаФорма, Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка);
   Если Колонка.Имя = "ПрихРасхДок" Тогда
       СтандартнаяОбработка = Ложь;
       СписокМеню = дкПолучитьСписокСвязныхДокументов(ВыбраннаяСтрока);
       Для Каждого СтрМеню Из СписокМеню Цикл
           Если СтрМеню.Значение.Проведен Тогда
               СтрМеню.Картинка = БиблиотекаКартинок.ДокументПроведен;
           Иначе
               СтрМеню.Картинка = БиблиотекаКартинок.ДокументНеПроведен;
           КонецЕсли;    
       КонецЦикла;    
       Если СписокМеню.Количество() > 0 Тогда
           Если СписокМеню.Количество() = 1 Тогда
               ВыбранныйДокумент = СписокМеню[0];
           Иначе            
               ВыбранныйДокумент = ВыбратьИзМеню(СписокМеню);
           КонецЕсли;    
           Если НЕ ВыбранныйДокумент = Неопределено Тогда
               ВыбранныйДокумент.Значение.ПолучитьФорму().Открыть();
           КонецЕсли;
       КонецЕсли;    
   КонецЕсли;    
КонецПроцедуры

Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
   Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
       дкСписокПриВыводеСтроки(ЭтаФорма, Элемент, ОформлениеСтроки, ОформлениеСтроки.ДанныеСтроки);

       СписокСвязныхДокументов = дкПолучитьСписокСвязныхДокументов(ОформлениеСтроки.ДанныеСтроки);
       //Если ТипЗнч("ЗаказПокупателя") = Тип("ДокументСсылка.ЗаказПокупателя") тогда

       Если СписокСвязныхДокументов.Количество() > 0 Тогда
           //ОформлениеСтроки.ЦветФона = WebЦвета.Аквамарин ;
           СтрокаПредставленияДокументов = "";
                           
               Для Каждого СтрДокумент Из СписокСвязныхДокументов Цикл
               //    Если ТипЗнч("ЗаказПокупателя")   тогда
                   СтрокаПредставленияДокументов = СтрокаПредставленияДокументов + Строка(СтрДокумент.Значение)+"; ";
               //конецЕсли;    
               КонецЦикла;
           СтрокаПредставленияДокументов = Лев(СтрокаПредставленияДокументов, СтрДлина(СтрокаПредставленияДокументов)-2);
           ОформлениеСтроки.Ячейки.ПрихРасхДок.УстановитьТекст(СтрокаПредставленияДокументов);
           ЕстьПроведенные = Ложь;
           Для Каждого СтрДокумент Из СписокСвязныхДокументов Цикл
               Если СтрДокумент.Значение.Проведен Тогда
                   ЕстьПроведенные = Истина;
                   Прервать;
               КонецЕсли;    
           КонецЦикла;    
       //    ОформлениеСтроки.Ячейки.ПрихРасхДок.ИндексКартинки = ?(ЕстьПроведенные,13,12);
           ОформлениеСтроки.Ячейки.ПрихРасхДок.ОтображатьКартинку = Истина;
       КонецЕсли;
   //    КонецЕсли;
   КонецЦикла;
КонецПроцедуры //СписокПриПолученииДанных()

есть две процедуры, с помошью которых мы выводим в колонку даные о связных документах, мне нужно сделать так, что бы не все документы отобрадались в данном списке, например, не отображался документ заявкаНаРемонт, куда лучшее это вставить
1 Zmich
 
18.07.12
08:29
(0).
дкПолучитьСписокСвязныхДокументов()
- тут надо подкорректировать, вставить сравнение на вид документа.

Ну или, если не хочется править эту процедуру, удалить ненужные документы уже после получения списка.
2 borzay999
 
18.07.12
08:46
они все нужны
документы, каким лучше образом править, я хотела сделать отбор по Если, что то не работает
3 borzay999
 
18.07.12
08:49
(1) у меня эта процедура используется в очень большом количестве, и для разных документах, мне ее править нельзя, отбор по видам документа может присутствовать только в этих процедурах
4 borzay999
 
18.07.12
08:53
Если ТипЗнч(ЗаказПокупателя) = Тип("ДокументСсылка.ЗаказПокупателя") тогда
что-нибудь подобное вставить?
5 Zmich
 
18.07.12
08:56
(4). Или так:
Если Док.Метаданные().Имя = "ЗаказПокупателя" Тогда
...
6 borzay999
 
18.07.12
08:58
и куда это лучше всавить ,мне этот документ в списке документов нужен на первом месте?
7 Zmich
 
18.07.12
09:05
СписокМеню = дкПолучитьСписокСвязныхДокументов(ВыбраннаяСтрока);
Индекс = СписокМеню.Количество() - 1;
Пока Индекс >= 0 Цикл
 Если СписокМеню[Индекс].Значение.Метаданные().Имя = "ЗаказПокупателя" Тогда
   СписокМеню.Удалить(Индекс);
 КонецЕсли;
 Индекс = Индекс - 1;
КонецЦикла;
8 borzay999
 
20.07.12
05:41
(7) при вставке данного текста в процедуру, он просто удаляет данный документ из списка, а вот надпись в колонке оставляет, т.к вторая поцедура заново проверяет список документов, как убрать надпись из колонки???
9 borzay999
 
20.07.12
05:53
разрешила проблему, ураааа!!
Ошибка? Это не ошибка, это системная функция.