- Как выгрузить колонку табличной части в массив
- Как выгрузить табличное поле в таблицу значений?
- Выгрузка табличной части документа
- Программирование в 1С для всех
- Заполнение табличной части 1С 8.3
- Очистка табличной части документа 1С 8.3
- Текущая строка табличной части 1С 8.3
- Обход табличной части 1С
- Связь колонок табличного поля с колонками источника данных
Как выгрузить колонку табличной части в массив
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как выгрузить данные из табличной части документа
Здравствуйте!Помогите пожалуйста! Как выгрузить данные из табличной части документа в XML?Заранее.
Как лучше передать колонку табличной части в запрос
Задача в том чтобы передать значение колонки табличной части в запрос. Можно выгрузить колонку в.
Выгрузить значение табличной части
Святые угодники, как в этой гребаной 1С выгрузить таблицу значений из ТЧ документа. Уже просто.
Запрос. Условие: строка из первой табличной части равна любой строке из другой табличной части
Есть документ «РаспределениеМатериаловНаВыпуск». У этого документа имеется «Форма документа». На.
Экспорт в эксель табличной части подчиненной формы с учетом полей-комбобоксов в табличной части
Добрый день. Пришло пожелание от коллег выгружать информацию из табличной подформы в.
Значение строки табличной части получить в табличной части другого документа
Есть документ ПриходнаяНакладная (товар приходит от поставщика по его цене), с табличной частью.
Автоматическое заполнение табличной части документа из табличной части другого
Добрый день. Совсем недавно начал изучать 1С и пока не могу найти решения собственной задачи).
Программное заполнение табличной части документа из табличной части справочника
Доброго! Ситуация, поставившая меня в тупик. Имеем 1с 8.2 УФ Имеем справочник «Работ» Имеем.
Источник
Как выгрузить табличное поле в таблицу значений?
Суть:
Есть документ с табличным полем в форме документа.
Необходимо выгрузить табличное поле в таблицу значений для дальнейшей обработки.
Табличное поле связано с табличной частью документа, но состав его строк отличается от состава строк табличной части документа в связи с:
1. Наличием вычисляемых полей
2. Установленным отбором
Колонки выгрузить могу через ТаблПоле.Колонки и обойти циклом «Для каждого». А как выгрузить строки.
Табличную часть документа тоже выгрузить могу. Но она, как написал, отличается от табличного поля составом строк и колонок.
(6) Если не проверял, то могу рассказать:
1. про метод «ОформлениеСтроки уже написал выше.
2. «ОформлениЕСтроки» появляется в событии «ПриВыводеСтроки», но там оформление только одной строки
3. В событии «ПриПолученииДанных» появляется «ОформлениЯСтроки» (коллекция элементов «ОформлениЕСтроки»), но эта коллекция содержит только те элементы, которые в данный момент выведены на экран.
Но все равно спасибо за ответ.
(8) Почитай про ПроверитьСтроку() и МЕТОД ОформлениеСтроки(), который не имеет общего с созвучными параметрами процедур ПриВыводеСтроки/ПриПолученииДанных.
В (6) реальный алгоритм: Перебирается не поле, а ТЧ. Проверяется соответствие строки отбору и если да — запрашивается её(этой строки) — ОформлениеСтроки().
ЗЫ. Имхо, перебирать всю ТЧ может оказаться накладнее, чем метод (3).
Спасибо всем за ответы.
П.С.:
Я решил следующим образом:
1. В табличную часть документа добавил как реквизиты все свои расчетные поля). По здравому размышлению это оказалось даже полезным, один из моментов: так как расчетные поля идут также в печатную форму, и документ, сохраненный в базе всегда соответствует тому, который распечатан. А пересчет данных по документу организовал в виде отдельной кнопки, т.о. автоматом 1С не пересчитывает.
2. Когда необходимо обработать те строки, которые в данный момент выведены на экран, с учетом установленных отборов, то считываю данные из табличной части документа методом «НайтиСтроки», в который передаю структуру с параметрами установленного отбора.
2.1. Для формирования структуры отбора, которая передается в НайтиСтроки написал свою функцию обхода ЭлементовОтбора.
Все.
Решение меня на данном этапе устраивает, так что интерес касательно других методов обхода строк табличного поля формы на данный момент только спортивный.
Будет свободное время — перечитаю последние ответы, попробую.
Источник
Выгрузка табличной части документа
Всем доброго времени суток!
Устраиваюсь в компанию, выдали тестовое задание — создать управляемую форму выгрузки/загрузки документа любого типа через .txt формат без сериализации XML или JSON. Находил на этом форуме точно такое же задание, но все, о чем там писали, уже реализовал. Так как текстовый файл должен быть понятным пользователю, ЗначениеВФайл()/ЗначениеИзФайла() использовать не получается. ЗначениеВСтрокуВнутр() использовать запрещено по условию.
Возникли следующие вопросы:
1. Реквизиты выгрузить в текст получилось, но при попытке загрузки в новый созданный документ реквизита (значение и тип я считываю из этого же текстового файла, данный реквизит точно должен быть у этого документа, так как считываю тип документа и создаю именно его), через НовыйДок[НазвРекв] = ЗначРекв выдает ошибку «Поле объекта не обнаружено». При этом если я конкретно указываю НовыйДок[«КонкретноеНазвРеквНеИзФайла»] = КакоеТоЗнач ошибку не выдает, но ничего не записывает, хотя с НовыйДок[«Дата»] = ДатаИзДока все работает правильно. Что я здесь делаю не так?
2. Нужно выгружать/загружать еще и табличную часть документа. Делаю следующим образом: для каждой табличной части документа выгружаю ее в таблицу Табл = Док[ТабличнаяЧасть.Имя].Выгрузить();, прохожу по строкам и выписываю все значения в txt файл. При этом не могу в «Табл» получить название колонки таблицы, а могу получить только название самой таблицы, значения и типы ее элементов. Есть ли удобный способ получить все данные из табличной части документа или как это корректно сделать способом, который я описал?
3. Некоторые реквизиты документов и табличных частей — ссылки на справочники,перечисления, доки и тд. При выгрузке их в txt формат преобразуются просто в строки, даже когда пытаюсь преобразовать в ссылку справочника, например: Значение=Справочники[Строка(ТипРекв)].НайтиПоНаименованию(Значение).Ссылка; Как можно записать ссылку в текстовый файл и потом считать ее или как из строки получить обратно ссылку и заполнить ей реквизит?
И еще, можете посоветовать учебники для начинающего в 1С, где можно было бы почитать обо всех этих штуках?
Заранее благодарен за ответы!
Источник
Программирование в 1С для всех
В предыдущей статье мы узнали, как настраивать и конфигурировать табличные части объектов 1С 8.3. В этой статье мы изучим некоторые вопросы программной работы с табличными частями 1С.
Заполнение табличной части 1С 8.3
Очень часто встречается задача заполнить табличную часть какими-нибудь значениями, например результатом выполнения запроса. Для демонстрации реализуем пример, в котором выполняется заполнение табличной части. Сделаем небольшую учебную задачу: будем заполнять табличную часть документа всей номенклатурой, которая не помечена на удаление. Количество при этом будет равно 1. Для заполнения табличной части документа нам необходимо работать с одноименной таблицей реквизита Объект, который является основным реквизитом управляемой формы.
Поскольку по условиям задачи, необходимо отобрать всю не помеченную на удаление номенклатуру, то оптимально это сделать при помощи запроса, в котором я буду получать все не помеченные элементы справочника номенклатура. Я создал команду, при выполнении которой будет заполняться табличная часть, и разместил её на форме.
Исполнение команды будет выполняться в серверном контексте, поскольку объект Запрос не работает в клиентском контексте на тонком клиенте.
При обходе запроса, я использую метод Добавить табличной части объекта (вообще это метод объекта, который имеет тип ДанныйФормыКоллекция, именно в этот тип преобразуется табличная часть документа-объекта, при создании на сервере). Данный метод является функцией, которая создаёт и возвращает новую строку.
Обратите внимание, поскольку при обходе запроса и заполнения новой строки, я использую метод ЗаполнитьЗначенияСвойств, то поля в запросе должны называться так же, как и поля табличной части.
Очистка табличной части документа 1С 8.3
Если мы реализуем данный код, то он будет не совсем корректен: каждый раз при выполнении этого кода будут добавляться новые строки, а вполне возможно, что пользователю старые строки не нужны. Поэтому, будем очищать имеющиеся строки, перед добавлением новых строк. Для этого воспользуемся методом Очистить объекта СписокТоваров, который имеет тип ДанныйФормыКоллекция.
После выполнения этого метода вся табличная часть будет очищена.
Текущая строка табличной части 1С 8.3
В процессе работы может возникнуть необходимость отработать текущую строку табличной части, т.е. ту строку, которая в данный момент выделена.
Например, может возникать ситуация, что мы редактируем какое-нибудь поле текущей строки таблицы на форме, и нам нужно, чтобы было пересчитано другое поле (или несколько полей) этой текущей строки. Например, мы изменяем цену (или количество) нашей табличной части, и необходимо, чтобы сумма автоматически была пересчитана.
Для решения данной задачи нужно воспользоваться свойством ТекущиеДанные элемента с типом ТаблицаФормы, который соответствует нужной табличной части. Свойство ТекущиеДанные возвращает значение полей текущей строки.
Для того, чтобы отработать изменение текущего поля цены, создадим обработчик события ПриИзменении этого поля.
В этом обработчике напишем код, который будет пересчитывать значения полей текущей строки табличной части.
Ещё пример: я создал команду, которая должна увеличивать количество в текущий строке табличной части в два раза и пересчитывать сумму. Эта команда размещена в командной панели таблицы и имеет следующий код:
Теперь доработаем этот пример: после увеличения текущей строки будем сдвигать текущую строку на строку вниз. Для этого допишем предыдущий код:
В этом коде мы получаем идентификатор текущий строки при помощи свойства таблицы управляемой формы ТекущаяСтрока, и если мы не выходим за приделы таблицы, то сдвигаем нашу текущую строку на один шаг вниз.
Также при помощи текущей строки можно находить аналогичную строку в соответствующей табличной части основного реквизита формы Объект, которую также можно изменять (строка на форме тоже изменится автоматически). Мы ранее сделали пересчет суммы при изменении цены, теперь сделаем пересчет суммы при изменении количества, но напрямую через реквизит Объект.
В этом коде мы используем метод НайтиПоИдентификатору переменной Объект.СписокТоваров, которая имеет типа ДанныйФормыКоллекция, этот метод получает элемент коллекции по указанному идентификатору. Если этот элемент найден, то мы можем с ними работать, причем данные на форме изменяться автоматически.
Обход табличной части 1С
Часто возникают задачи обойти табличную часть и изменить какие-либо значения в столбцах. В предыдущих примерах мы изменяли текущую стоку таблицы, теперь реализуем пример, когда нужно изменить все строки. В этом случае нет необходимости обращаться к элементам формы, можно работать напрямую с основным реквизитом Объект.
Остальные статьи по теме конфигурирования в 1С:
Более подробно и основательно конфигурирование в 1С дается в моей книге:
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Источник
Связь колонок табличного поля с колонками источника данных
Для того чтобы в колонках табличного поля отображались данные связанного с ним списка, необходимо , чтобы колонки табличного поля были связаны с колонками отображаемого списка. Существует два способа связи колонок списка с колонками табличного поля :
- Можно использовать метод СоздатьКолонки() табличного поля . В этом случае табличное поле создаст набор колонок по умолчанию и свяжет их с соответствующими колонками источника данных . Набор создаваемых колонок зависит от типа отображаемого списка :
- Для списков справочников, планов видов характеристик и планов видов расчета создаются колонка Картинка, и колонки Код и Наименование, если их длина установлена не равной нулю.
- Для списка документов создаются колонки Картинка, Номер (если его длина не равна нулю), Дата и Проведен .
- Для списка плана счетов создаются колонка Картинка, и колонки Код, Наименование и Порядок, если их длина установлена не равной нулю.
- Для списков регистров и соответствующих им наборов записей создаются колонки для всех существующих измерений, ресурсов и реквизитов, а также колонки картинки, регистратора и периода.
- Для таблицы значений, дерева значений и табличной части создаются все существующие колонки.
- Можно создать программно необходимые колонки в табличном поле и связать их с соответствующими колонками списка. Для этого необходимо использовать метод Добавить() коллекции колонок табличного поля. После добавления колонки необходимо привязать ее к соответствующей колонке списка, используя свойство Данные колонки табличного поля , которому необходимо присвоить имя колонки списка . Для того чтобы отображать в колонке табличного поля флажки, необходимо использовать свойство ДанныеФлажка , которому необходимо присвоить имя колонки, содержащей значения флажков. Данный способ удобен тем, что позволяет создавать только необходимые колонки. Поясним использование данного способа на следующем примере. Пусть требуется получить все записи списка справочника «Номенклатура», у которых страной происхождения является Китай , загрузить их в таблицу значений и отобразить значения колонок Код, Наименование и ПометкаУдаления в табличном поле . Для этого выгрузим эти записи при помощи запроса в таблицу значений , установим эту таблицу значений табличному полю в качестве источника данных и добавим в табличное поле три колонки : Копировать в буфер обмена
После добавления колонки может потребоваться настроить редактирование. Для этого у колонки необходимо сбросить свойство ТолькоПросмотр и установить элемент управления — редактор, используя метод УстановитьЭлементУправления() колонки табличного поля. В приведенном ниже примере в табличное поле СправочникНоменклатура добавляется колонка Артикул, которой в качестве редактора значения устанавливается поле ввода :
Источник