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

Хранилище

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

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



> Слои и реквизиты табличной части документа 2 страниц V   1 2 >          
wmatik Подменю пользователя
сообщение 20.10.11, 13:32
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 294
Спасибо сказали: 1 раз
Рейтинг: 0

1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)
Есть четыре слоя:Основной, Общий, СпецификацияКДоговору и ДополнительноеСоглашениеКДоговору.
Необходимо поместить таблицы на два слоя СпецификаяКДоговору и ДополнительноеСоглашениеКДоговору. Возникла проблема, когда помещаю таблицу на слой СпецификацияКДоговору все хорошо, но как только перехожу на слой Дополнение через добавление реквизитов на форму, выбираю из списка нужный реквизит, нажимаю вставить, он вставляется в ту таблицу, которая находится на слое СпецификацияКДоговору. Но в принципе таблицы должны быть идентичные, может как-то по иному можно это сделать?


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

nysysimara Подменю пользователя
сообщение 20.10.11, 13:50
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

Возможно, для просмотра у Вас открыты оба слоя, но флажок редактирования стоит напротив слоя Спецификация...

Если
Цитата
Но в принципе таблицы должны быть идентичные,

нельзя ли обойтись одной таблицей на одном из слоев
или создать новый слой с общими реквизитами из этих двух


Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

Zaval Подменю пользователя
сообщение 20.10.11, 14:21
Сообщение #3

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Что такое "Таблица"?
Если речь о табличной части - то в 7.7 она может быть только одна.

wmatik Подменю пользователя
сообщение 20.10.11, 14:22
Сообщение #4

Оратор
*****
Группа: Пользователи
Сообщений: 294
Спасибо сказали: 1 раз
Рейтинг: 0

для просмотра открыт один слой, обойтись одной таблицей нельзя, и создать слой с общими реквизитами тоже нельзя, данные в таблице разные должны быть

да, речь идет о табличной части


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

Ardi Подменю пользователя
сообщение 20.10.11, 14:23
Сообщение #5

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Купите восьмёрку. Там это реализовано.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

wmatik Подменю пользователя
сообщение 20.10.11, 14:24
Сообщение #6

Оратор
*****
Группа: Пользователи
Сообщений: 294
Спасибо сказали: 1 раз
Рейтинг: 0

а как же тогда поступить?(


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

Zaval Подменю пользователя
сообщение 20.10.11, 14:30
Сообщение #7

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Таблица значений. Только для сохранения ее придется преобразовывать в строку неограниченной длины.
В серверном варианте(с каким-то из SQL), помнится, были траблы с этим.
Изврат порядочный.

Еще можно для этого отдельный документ создать и выводить на форму уже его ТЧ.

А если порядок строк не важен - это могут быть элементы справочника, подчиненного Контрагенту... правда по Договору отбирать придется.

Много чего можно придумать... но, все через ТЗ.

nysysimara Подменю пользователя
сообщение 20.10.11, 14:33
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

1 вариант: 2 таблицы значений - для каждого слоя своя, описать заполнение их отрисовку ,
2 вариант попытаться обойтись только табличной частью

заполнять таблицы значений из табличной части


Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

MATEVI Подменю пользователя
сообщение 20.10.11, 14:40
Сообщение #9

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 956 раз
Рейтинг: 0

Еще можно через подчиненный документ. Но мне больше нравится вариант ТЗ. Хотя про траблы с СКЛ не слыхал, и не сталкивался.

ЗЫ не увидел полный ответ Zaval

Zaval Подменю пользователя
сообщение 20.10.11, 15:00
Сообщение #10

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Цитата(MATEVI @ 20.10.11, 15:40) *
Еще можно через подчиненный документ. Но мне больше нравится вариант ТЗ. Хотя про траблы с СКЛ не слыхал, и не сталкивался.

ЗЫ не увидел полный ответ Zaval


Возможно, траблы были в ранних релизах платформы( с СКЛ2000?). Какая-то некорректность с этими строками.

ЗЫ. Я его дописал)))

wmatik Подменю пользователя
сообщение 20.10.11, 15:25
Сообщение #11

Оратор
*****
Группа: Пользователи
Сообщений: 294
Спасибо сказали: 1 раз
Рейтинг: 0

пошла учить таблицы значений


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

Zaval Подменю пользователя
сообщение 20.10.11, 15:30
Сообщение #12

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Блин... знакомое что-то... неужели под Метро кроИте?

MATEVI Подменю пользователя
сообщение 20.10.11, 15:38
Сообщение #13

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 956 раз
Рейтинг: 0

Может поможет [необходимо зарегистрироваться для просмотра ссылки]
Взял [необходимо зарегистрироваться для просмотра ссылки]

Спасибо сказали: wmatik,

wmatik Подменю пользователя
сообщение 21.10.11, 13:57
Сообщение #14

Оратор
*****
Группа: Пользователи
Сообщений: 294
Спасибо сказали: 1 раз
Рейтинг: 0

Разбираясь с этим вариантом представления двух табличных частей, я столкнулась с проблемкой, создаю в своей базе документ, делаю все так же, но при открытии документа вылазит ошибка:
ИдентификаторКолонки = Метаданные.Документ(ВидДок).РеквизитТабличнойЧасти(ИдентификаторРеквизита).Идент
ификатор;
{Документ.ДоговорРасходный.Форма.Модуль(87)}: Поле агрегатного объекта не обнаружено (Идентификатор)

Процедура ЗаполнениеТаблиц(Таб,Наименование)    
    ВидДок = ТекущийДокумент().Вид();
    ПараметрыТаб = Метаданные.Документ(ВидДок).РеквизитШапки(Наименование).Комментарий;
    КолКолонокТаб = Число(глПолучитьЭлемент(ПараметрыТаб,1,","));
    КолСтрокТаб = ПолучитьАтрибут(Наименование);
    Таб.НоваяКолонка("Номер","Число",3,,"№",3);
    Таб.Фиксировать(,1);
    Для К = 1 По КолКолонокТаб Цикл
        ИдентификаторРеквизита = глПолучитьЭлемент(ПараметрыТаб,К + 1,",");
        ИдентификаторКолонки = Метаданные.Документ(ВидДок).РеквизитТабличнойЧасти(ИдентификаторРеквизита).Идентификатор;
        НазваниеКолонки = Метаданные.Документ(ВидДок).РеквизитТабличнойЧасти(ИдентификаторРеквизита).Синоним;
        ТипКолонки = Метаданные.Документ(ВидДок).РеквизитТабличнойЧасти(ИдентификаторРеквизита).Тип;
        ШиринаКолонки = Число(Метаданные.Документ(ВидДок).РеквизитТабличнойЧасти(ИдентификаторРеквизита).Комментарий);
        Если ТипКолонки = "Число" Тогда                                                      
            ДлинаКолонки = Число(Метаданные.Документ(ВидДок).РеквизитТабличнойЧасти(ИдентификаторРеквизита).Длина);
            ТочностьКолонки = Число(Метаданные.Документ(ВидДок).РеквизитТабличнойЧасти(ИдентификаторРеквизита).Точность);
            РазделятьТриады =  Число(Метаданные.Документ(ВидДок).РеквизитТабличнойЧасти(ИдентификаторРеквизита).РазделятьТриады);
            ФорматКолонки = "Ч"+ДлинаКолонки+"."+ТочностьКолонки+"."+?(РазделятьТриады=1,",","");
            Таб.НоваяКолонка(ИдентификаторКолонки,ТипКолонки,ДлинаКолонки,ТочностьКолонки,НазваниеКолонки
,ШиринаКолонки,ФорматКолонки,2);
        ИначеЕсли ТипКолонки = "Строка" Тогда                                                      
            ДлинаКолонки = Число(Метаданные.Документ(ВидДок).РеквизитТабличнойЧасти(ИдентификаторРеквизита).Длина);
            Таб.НоваяКолонка(ИдентификаторКолонки,ТипКолонки,ДлинаКолонки,,НазваниеКолонки,ШиринаКолонки,
,1);
        ИначеЕсли (ТипКолонки = "Справочник") или (ТипКолонки = "Документ")  Тогда
            ВидКолонки = Метаданные.Документ(ВидДок).РеквизитТабличнойЧасти(ИдентификаторРеквизита).Вид;
            Таб.НоваяКолонка(ИдентификаторКолонки,ТипКолонки+"."+ВидКолонки,ДлинаКолонки,,НазваниеКолонки,ШиринаКолонки,,1);
        Иначе
            Таб.НоваяКолонка(ИдентификаторКолонки,ТипКолонки,,,НазваниеКолонки,ШиринаКолонки,,1);
        КонецЕсли;    
    КонецЦикла;            
    Для Л = 1 По КолСтрокТаб Цикл
        Если ПолучитьСтрокуПоНомеру(Л) = 1 Тогда
            Таб.НоваяСтрока();
            Для К = 1 По КолКолонокТаб Цикл
                ИдентификаторРеквизита = глПолучитьЭлемент(ПараметрыТаб,К + 1,",");
                ЗначениеРеквизита = ПолучитьАтрибут(ИдентификаторРеквизита);
                Таб.УстановитьЗначение(Л,ИдентификаторРеквизита,ЗначениеРеквизита);
            КонецЦикла;
            Таб.Номер = Таб.НомерСтроки;
        КонецЕсли;    
    КонецЦикла;
    Форма.Закладки.ДобавитьЗначение(Наименование,Метаданные.Документ(ВидДок).РеквизитШапки(Наименование).Синоним);    
    СписокТаб.ДобавитьЗначение(Таб,Наименование);
КонецПроцедуры    // ЗаполнениеТаблиц


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

Ardi Подменю пользователя
сообщение 21.10.11, 14:02
Сообщение #15

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Сочиняйте код с нуля под конкретные данные. Не переусложняйте себе жизнь километрами универсального кода.

Сообщение отредактировал Ardi - 21.10.11, 14:03


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

wmatik Подменю пользователя
сообщение 21.10.11, 14:06
Сообщение #16

Оратор
*****
Группа: Пользователи
Сообщений: 294
Спасибо сказали: 1 раз
Рейтинг: 0

ок


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

MATEVI Подменю пользователя
сообщение 21.10.11, 14:38
Сообщение #17

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 956 раз
Рейтинг: 0

Ну если прям совсем просто.
1) В шапку добавляем реквизит строка неограниченной длины например - ТЗстр
2) Добавляем свою ТЗ на форму.
3)
Процедура ПриОткрытии()
//..........
          ТабЗн.НоваяКолонка("Счет"      ,,,,"Счет аванса",10);
          ТабЗн.НоваяКолонка("Контрагент",,,,"Контрагент",15);
          ТабЗн.НоваяКолонка("Договор"   ,,,,"Договор",15);
          ТабЗн.НоваяКолонка("Сумма","Число",15,2,,10);
    
          Т = ЗначениеИзСтроки(Тзстр);
          ТабЗн.Загрузить(Т);
КонецПроцедуры

4)
Процедура ПриЗаписи()
///...
        Тзстр = ЗначениеВСтроку(ТабЗн);
КонецПроцедуры

5) Вешаем кнопки для добавления удаления строк. Тут просто или ТабЗн.УдалитьСтроку
или ТабЗн.НоваяСтрока();
6) Описываем работу с ТЗ при кликании на ее строка, колонках. типа ...
Процедура ИзмТаблЗначений()
    ТКол="";
    ТКол=ТабЗн.ТекущаяКолонка();
    Если ТКол="Сумма" Тогда
        См = ТабЗн.Сумма;
        Рез=ВвестиЧисло(См,"Сумма",15.2,2);
        Если Рез=1 Тогда
            ТабЗн.Сумма=См;
        КонецЕсли;
    КонецЕсли;    
КонецПроцедуры //ИзмТаблЗначений

7) Если надо получать какие то данные из этой таблицы при проведении то в модуле
опять значениеизстроки получаете свою таблицу и работаете с ней

mister-x Подменю пользователя
сообщение 21.10.11, 17:11
Сообщение #18

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Цитата
Т = ЗначениеИзСтроки(Тзстр);
як на мене, окремий довідник надійніше - тоді робити відбір там по даному документу-лінку

wmatik Подменю пользователя
сообщение 25.10.11, 13:01
Сообщение #19

Оратор
*****
Группа: Пользователи
Сообщений: 294
Спасибо сказали: 1 раз
Рейтинг: 0

Подскажите, мне необходимо чтобы в таблице при выборе товара подтягивался его код, я прописываю процедурку, потом её объявляю, но почему то не подсоединяется код:
Процедура Подбор()
    ИмяТаб = Форма.Закладки.ПолучитьЗначение(Форма.Закладки.ТекущаяСтрока());
    Таб = СписокТаб.Получить(ИмяТаб);
    ТекущаяСтрока = Таб.ТекущаяСтрока();
    Если ПустоеЗначение(ТекущаяСтрока) = 1 Тогда
        Возврат;
    КонецЕсли;  

    ИмяКолонки = Таб.ТекущаяКолонка();
    
    ТипКолонки = "";
    ДлинаКолонки = "";
    ТочностьКолонки = "";
    
    Таб.ПолучитьПараметрыКолонки(ИмяКолонки,ТипКолонки,ДлинаКолонки,ТочностьКолонки);
    
    Значение = 0;
    Если ТипКолонки = "Число" Тогда  
        Если ВвестиЧисло(Значение,"Введите значение ("+ИмяКолонки+")",ДлинаКолонки,ТочностьКолонки,0) = 1 Тогда
            Таб.УстановитьЗначение(ТекущаяСтрока,ИмяКолонки,Значение);
            Форма.Обновить(1);
        КонецЕсли;
    ИначеЕсли ТипКолонки = "Строка" Тогда
        Если ВвестиСтроку(Значение,"Введите значение ("+ИмяКолонки+")",ДлинаКолонки,0,0) = 1 Тогда
            Таб.УстановитьЗначение(ТекущаяСтрока,ИмяКолонки,Значение);
            Форма.Обновить(1);
        КонецЕсли;
    ИначеЕсли ТипКолонки = "Дата" Тогда
        Если ВвестиДату(Значение,"Введите значение ("+ИмяКолонки+")",0) = 1 Тогда
            Таб.УстановитьЗначение(ТекущаяСтрока,ИмяКолонки,Значение);
            Форма.Обновить(1);
        КонецЕсли;                                                                      
    ИначеЕсли (Лев(ТипКолонки,10) = "Справочник") или (Лев(ТипКолонки,8) = "Документ") Тогда
        Если ВвестиЗначение(Значение,"Введите значение ("+ИмяКолонки+")",ТипКолонки) = 1 Тогда
            Таб.УстановитьЗначение(ТекущаяСтрока,ИмяКолонки,Значение);
            ПриВыбореТМЦ();
            Форма.Обновить(1);
        КонецЕсли;
    КонецЕсли;

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


Процедура ПриВыбореТМЦ()
    КодДК = ТМЦ.КодДК;
КонецПроцедуры


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

nysysimara Подменю пользователя
сообщение 25.10.11, 13:34
Сообщение #20

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

если нужен непосредственно код элемента справочника, тогда
КодДК = ТМЦ.Код;


Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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